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 diversi formati:
- Il formato Hub TF1 personalizzato. La sua destinazione d'uso principale è in TF1 (o modalità di compatibilità TF1 in TF2) tramite il suo hub.Module API . Dettagli sulla compatibilità completa di seguito .
- Il formato nativo di TF2 SavedModel . La sua destinazione d'uso principale è in TF2 tramite le API hub.load e hub.KerasLayer . Dettagli sulla compatibilità completa di seguito .
Il formato del modello è disponibile nella pagina del modello su tfhub.dev . Il caricamento / inferenza del modello, l'ottimizzazione o la creazione potrebbero non essere supportati in TF1 / 2 in base ai formati del modello.
Compatibilità del formato Hub TF1
Operazione | Modalità compatibilità TF1 / TF1 in TF2 [1] | TF2 |
Caricamento / inferenza | Completamente supportato (guida completa al caricamento del formato Hub TF1 ) 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 | Completamente supportato (guida completa alla messa a punto del formato Hub TF1 ) m = hub.Module(handle,
trainable=True,
tags=["train"]*is_training)
outputs = m(inputs) Nota: i moduli che non richiedono un grafico del treno separato non hanno un tag del treno. | Non supportato |
Creazione | Completamente supportato (vedere la guida completa alla creazione del formato Hub TF1 ) Nota: il formato Hub TF1 è orientato verso TF1 ed è supportato solo parzialmente in TF2. Considera l'idea di creare un TF2 SavedModel. | Non supportato |
Compatibilità di TF2 SavedModel
Non supportato prima di TF1.15.
Operazione | Modalità compatibilità TF1.15 / TF1 in TF2 [1] | TF2 |
Caricamento / inferenza | Utilizza 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 ). Utilizza 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 riempie le raccolte di grafici come 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 chiamata dalla modalità compat. | Completamente supportato (vedi la guida completa alla creazione di TF2 SavedModel ) |
[1] "TF1 compat mode in TF2" si riferisce all'effetto combinato dell'importazione di TF2 con import tensorflow.compat.v1 as tf
e dell'esecuzione di tf.disable_v2_behavior()
come descritto nella guida alla migrazione di TensorFlow .