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 Hub TF1 personalizzato. L'utilizzo previsto principale è in TF1 (o modalità di compatibilità TF1 in TF2) tramite l' hub.Module API . Dettagli completi sulla compatibilità di seguito .
- Il formato nativo TF2 SavedModel . L'utilizzo principale previsto è in TF2 tramite le API hub.load e hub.KerasLayer . Dettagli completi sulla compatibilità di seguito .
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 .