Maintenant que TensorFlow 1.1 prend en charge l'API Keras sous tf.contrib.keras
, lequel dois-je utiliser si j'ai l'intention d'utiliser Keras avec un backend TF?
Est le tf.contrib.keras
version différente d'une manière quelconque d'une distribution Keras régulière? (On pense aux optimisations spécifiques à TF des structures de données internes). Y a-t-il un avantage à utiliser Keras et TensorFlow Core ensemble si j'utilise l'un ou l'autre?
Ou est tf.contrib.keras
simplement une copie de la même base de code que Keras mais sous un espace de noms différent?
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 dépôt tensorflow et a une base de code distincte du dépôt officiel (le dernier commit là-bas dans le tf-keras
succursale remonte à mai 2017 ).
En règle générale, si votre code utilise un code spécifique au tensorflow, dites quoi que ce soit dans tf.data.*
pour fournir des entrées ou tf.summary.*
pour la visualisation dans le tensorboard, il est plus simple d'utiliser simplement tf.keras
. (Certains peuvent même recommander de ne pas utiliser l'implémentation Keras de référence avec TF à cause de problèmes occasionnels avec cette boîte à outils ).
D'un autre côté, si vous prévoyez de maintenir activement un code indépendant du framework, utiliser le propre package de keras est votre seul choix.
Si vous ne vous souciez pas beaucoup d'être indépendant du framework mais n'utilisez pas de code spécifique à tensorflow, je vous conseillerais probablement d'aller avec tf.keras
et commencer à utiliser du code spécifique à tensorflow, en particulier. tf.data
ce qui change la donne à mon avis.
Keras est mieux compris comme une spécification API, pas comme une base de code spécifique. En fait, à l'avenir, il y aura deux implémentations distinctes de la spécification Keras: la version interne de TensorFlow, disponible sous la forme tf.keras, écrite en pur TensorFlow et profondément compatible avec toutes les fonctionnalités de TensorFlow, et la multi-backend externe prenant en charge à la fois Theano et TensorFlow (et probablement encore plus de backends à l'avenir).