Compatibilità del modello per TF1/TF2

Formati del modello TF Hub

TF Hub offre pezzi di modello riutilizzabili che possono essere ricaricati, costruiti ed eventualmente riqualificati in un programma TensorFlow. Questi sono disponibili in due formati diversi:

Il formato del modello può essere trovato nella pagina del modello su tfhub.dev . Il caricamento/inferenza del modello, la messa a punto o la creazione potrebbero non essere supportati in TF1/2 in base ai formati del modello.

Compatibilità del formato TF1 Hub

Operazione Modalità compatta TF1/TF1 in TF2 [1] TF2
Caricamento/inferenza Pienamente supportato ( guida completa al caricamento del formato TF1 Hub )
m = hub.Module(handle)
outputs = m(inputs)
Si consiglia di utilizzare hub.load
m = hub.load(handle)
outputs = m.signatures["sig"](inputs)
o hub.KerasLayer
m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs)
Ritocchi Pienamente supportato ( guida completa alla regolazione del formato TF1 Hub )
m = hub.Module(handle,
               trainable=True,
               tags=["train"]*is_training)
outputs = m(inputs)
Nota: i moduli che non necessitano di un grafico del treno separato non hanno un tag del treno.
Non supportato
Creazione Pienamente supportato (vedi la guida completa alla creazione del formato TF1 Hub )
Nota: il formato TF1 Hub è orientato a TF1 ed è supportato solo parzialmente in TF2. Prendi in considerazione la creazione di un modello salvato TF2.
Non supportato

Compatibilità di TF2 SavedModel

Non supportato prima di TF1.15.

Operazione Modalità compatta TF1.15/TF1 in TF2 [1] TF2
Caricamento/inferenza Utilizzare hub.load
m = hub.load(handle)
outputs = m(inputs)
o hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Completamente supportato ( guida completa al caricamento di TF2 SavedModel ). Utilizzare hub.load
m = hub.load(handle)
outputs = m(inputs)
o hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Ritocchi Supportato per un hub.KerasLayer utilizzato in tf.keras.Model quando addestrato con Model.fit() o addestrato in un Estimator il cui model_fn avvolge il modello secondo la guida model_fn personalizzata .
Nota: hub.KerasLayer non compila le raccolte di grafici come facevano le vecchie API tf.compat.v1.layers o hub.Module.
Completamente supportato ( guida completa alla messa a punto di TF2 SavedModel ). Utilizza hub.load:
m = hub.load(handle)
outputs = m(inputs, training=is_training)
o hub.KerasLayer:
m =  hub.KerasLayer(handle, trainable=True)
outputs = m(inputs)
Creazione L'API TF2 tf.saved_model.save() può essere richiamata dalla modalità compatibilità. Pienamente supportato (vedi la guida completa alla creazione di TF2 SavedModel )

[1] La "modalità compatibile TF1 in TF2" si riferisce all'effetto combinato dell'importazione di TF2 con import tensorflow.compat.v1 as tf e dell'esecuzione tf.disable_v2_behavior() come descritto nella guida alla migrazione di TensorFlow .