tf.keras
(anciennement tf.contrib.keras
) est une implémentation de keras 2 mise en œuvre exclusivement avec/pour tensorflow. Elle est hébergée sur le repo de tensorflow et a une base de code distincte de celle du repo officiel (le dernier commit dans le repo officiel est le tf-keras
rama date de mai 2017 ).
En règle générale, si votre code utilise un code spécifique à tensorflow, dites que tout ce qui se trouve dans tf.data.*
pour fournir des intrants ou tf.summary.*
pour la visualisation dans tensorboard, il est plus simple de simplement utiliser tf.keras
. (Certains peuvent même recommander no en utilisant l'implémentation Keras de référence avec TF à cause de problèmes occasionnels qu'elle rencontre avec cette boîte à outils ).
D'autre part, si vous envisagez de maintenir activement un code agnostique, l'utilisation du paquetage propre à Keras est votre seul choix.
Si vous ne vous souciez pas beaucoup d'être agnostique mais que vous n'utilisez pas de code spécifique à tensorflow, je vous conseillerais probablement d'opter pour tf.keras
et commencer à utiliser le code spécifique à tensorflow, notamment. tf.data
ce qui, à mon avis, change la donne.
EDITAR
J'ai assisté à une conférence de Chollet sur TF2 (je n'ai pas pu trouver d'enregistrement en ligne) au cours de laquelle il a dit en substance que le support des frameworks autres que TF finirait par être abandonné et que les développements futurs de Keras se feraient exclusivement dans le cadre de TF2. tf.keras
.
D'après ce que je peux voir, c'est déjà le cas, car Le flux de commit de Keras devient mince ces jours-ci.
Cela a beaucoup de sens puisque, pour l'instant, le seul autre cadre DL populaire est pytorch, qui n'est pas pris en charge par Keras. Garder le code de Keras "agnostique" à tensorflow - le seul cadre majeur qu'il supporte - a de moins en moins de sens.
Donc aujourd'hui, ma réponse serait d'utiliser tf.keras
par défaut, et gardez Keras pour les projets hérités qui seraient difficiles à migrer - c'est le choix le plus sûr pour Keras.