Quelle est la différence entre Keras et tf.contrib.kéras en TensorFlow 1.1+?

maintenant que TensorFlow 1.1 supporte L'API Keras sous tf.contrib.keras , lequel devrais-je utiliser si J'ai l'intention d'utiliser Keras avec un backend TF?

la version tf.contrib.keras diffère-t-elle d'une quelconque façon d'une distribution Keras régulière? (On pense aux optimisations spécifiques des structures de données internes). Y a-t-il un avantage en termes d'utilisation de Keras et tensorflow Core ensemble si j'utilise l'un ou l'autre?

Ou tf.contrib.keras simplement une copie de la même base de code que Keras mais sous un autre espace de noms?

25
demandé sur Jakub Arnold 2017-05-19 14:29:29

3 réponses

S'il y a deux dépôts GitHub, comment synchroniserez-vous pull demandes à tf.keras et de ce référentiel? Aura-t-il quelqu'un appliquer des changements dans une autorité de possession à une autre?

les codebases seront différentes, il ne sera donc pas nécessaire de répliquer pull requests. Pour les modifications de L'API, vous enverriez un PR aux spécifications de L'API elle-même, et les modifications à L'API spec serait répliqué dans tous les codebase.

https://github.com/fchollet/keras/issues/5299#issuecomment-278166426

0
répondu dahoiv 2017-05-19 15:42:56

tf.keras (anciennement tf.contrib.keras ) est une implémentation de keras 2 implémentée exclusivement avec/pour tensorflow. Il est hébergé sur le TensorFlow repo et a une base de code distincte que le depo officiel (le dernier commit dans la tf-keras branche remonte à mai 2017 ).

en règle générale, si votre code utilise un code spécifique à tensorflow, dites n'importe quoi dans tf.data.* pour fournir des entrées ou tf.summary.* pour la visualisation dans tensorboard, il est plus simple de n'utiliser que la 151900920" . (Certains peuvent même recommander pas en utilisant la référence Keras implémentation avec TF en raison de problèmes occasionnels qu'il a avec cette boîte à outils ).

d'un autre côté, si vous prévoyez de maintenir activement un code agnostique-cadre, utiliser le propre paquet de keras est votre seul choix.

si vous ne vous souciez pas beaucoup d'être Cadre-agnostique mais n'utilisez pas le code tensorflow-specific, je conseillerais probablement d'aller avec tf.keras et commencer à utiliser le code tensorflow-specific, esp. tf.data qui change la donne à mon avis.

10
répondu P-Gn 2018-07-05 15:04:21

Keras est mieux compris comme une spécification API, et non comme une spécification spécifique codebase. En fait, aller fowards il y aura deux mise en œuvre de la spécification Keras: le TensorFlow interne, disponible en format tf.keras, écrit en TensorFlow pur et profond compatible avec toutes les fonctionnalités TensorFlow, et le un système à plusieurs niveaux supportant à la fois Theano et TensorFlow (et probablement encore plus de sorties dans l'avenir).

https://blog.keras.io/introducing-keras-2.html

8
répondu RezaRob 2018-03-18 14:37:45