Google I/O est terminé ! Suivez les sessions TensorFlow Afficher les sessions

Compatibilité des modèles pour TF1/TF2

Formats de modèle de hub TF

TF Hub propose des pièces de modèle réutilisables qui peuvent être rechargées, construites et éventuellement recyclées dans un programme TensorFlow. Ceux-ci se présentent sous deux formats différents :

Le format du modèle se trouve sur la page du modèle sur tfhub.dev . Le chargement/inférence de modèle, le réglage fin ou la création peuvent ne pas être pris en charge dans TF1/2 en fonction des formats de modèle.

Compatibilité du format Hub TF1

Opération Mode compatible TF1/TF1 dans TF2 [1] TF2
Chargement / Inférence Entièrement pris en charge ( guide complet de chargement du format TF1 Hub )
m = hub.Module(handle)
outputs = m(inputs)
Il est recommandé d'utiliser hub.load
m = hub.load(handle)
outputs = m.signatures["sig"](inputs)
ou hub.KerasLayer
m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs)
Réglage fin Entièrement pris en charge ( guide complet de réglage fin du format Hub TF1 )
m = hub.Module(handle,
               trainable=True,
               tags=["train"]*is_training)
outputs = m(inputs)
Remarque : les modules qui n'ont pas besoin d'un graphe de train séparé n'ont pas de balise de train.
Non supporté
Création Entièrement pris en charge (voir guide complet de création du format Hub TF1 )
Remarque : Le format TF1 Hub est orienté vers TF1 et n'est que partiellement supporté dans TF2. Envisagez de créer un TF2 SavedModel.
Non supporté

Compatibilité de TF2 SavedModel

Non pris en charge avant TF1.15.

Opération Mode compatible TF1.15/ TF1 dans TF2 [1] TF2
Chargement / Inférence Utilisez hub.load
m = hub.load(handle)
outputs = m(inputs)
ou hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Entièrement pris en charge ( guide de chargement complet de TF2 SavedModel ). Utilisez hub.load
m = hub.load(handle)
outputs = m(inputs)
ou hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Réglage fin Pris en charge pour un hub.KerasLayer utilisé dans tf.keras.Model lorsqu'il est formé avec Model.fit() ou formé dans un Estimator dont model_fn enveloppe le Model selon le guide model_fn personnalisé .
Remarque : hub.KerasLayer ne remplit pas les collections de graphes comme le faisaient les anciennes API tf.compat.v1.layers ou hub.Module.
Entièrement pris en charge ( guide complet de réglage fin de TF2 SavedModel ). Utilisez hub.load :
m = hub.load(handle)
outputs = m(inputs, training=is_training)
ou hub.KerasLayer :
m =  hub.KerasLayer(handle, trainable=True)
outputs = m(inputs)
Création L'API TF2 tf.saved_model.save() peut être appelée depuis le mode compat. Entièrement pris en charge (voir le guide complet de création de TF2 SavedModel )

[1] Le "mode de compatibilité TF1 dans TF2" fait référence à l'effet combiné de l'importation de TF2 avec import tensorflow.compat.v1 as tf et de l'exécution de tf.disable_v2_behavior() comme décrit dans le guide de migration TensorFlow .