Kompatybilność modelu dla TF1/TF2

Formaty modeli TF Hub

TF Hub oferuje elementy modelu wielokrotnego użytku, które można ponownie załadować, zbudować i ewentualnie przeszkolić w programie TensorFlow. Występują one w dwóch różnych formatach:

Format modelu można znaleźć na stronie modelu na tfhub.dev . Ładowanie/wnioskowanie modelu, dostrajanie lub tworzenie może nie być obsługiwane w TF1/2 w oparciu o formaty modelu.

Zgodność formatu TF1 Hub

Działanie Tryb zgodności TF1/TF1 w TF2 [1] TF2
Ładowanie / wnioskowanie W pełni obsługiwane ( kompletny przewodnik ładowania formatu TF1 Hub )
m = hub.Module(handle)
outputs = m(inputs)
Zalecane jest użycie pliku hub.load
m = hub.load(handle)
outputs = m.signatures["sig"](inputs)
lub hub.KerasLayer
m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs)
Dostrajanie W pełni obsługiwane ( kompletny przewodnik dostrajania formatu TF1 Hub )
m = hub.Module(handle,
               trainable=True,
               tags=["train"]*is_training)
outputs = m(inputs)
Uwaga: moduły, które nie wymagają osobnego wykresu pociągu, nie mają znacznika pociągu.
Nieobsługiwane
Tworzenie W pełni obsługiwane (zobacz kompletny przewodnik tworzenia formatu TF1 Hub )
Uwaga: format TF1 Hub jest nastawiony na TF1 i jest tylko częściowo obsługiwany w TF2. Rozważ utworzenie zapisanego modelu TF2.
Nieobsługiwane

Zgodność z zapisanym modelem TF2

Nieobsługiwane przed TF1.15.

Działanie Tryb zgodności TF1.15/TF1 w TF2 [1] TF2
Ładowanie / wnioskowanie Użyj dowolnego hub.load
m = hub.load(handle)
outputs = m(inputs)
lub hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
W pełni obsługiwane ( kompletny przewodnik ładowania TF2 SavedModel ). Użyj dowolnego hub.load
m = hub.load(handle)
outputs = m(inputs)
lub hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Dostrajanie Obsługiwane dla hub.KerasLayer używanego w tf.keras.Model podczas trenowania za pomocą Model.fit() lub trenowanego w estymatorze, którego model_fn otacza Model zgodnie z niestandardowym przewodnikiem model_fn .
Uwaga: hub.KerasLayer nie wypełnia kolekcji wykresów, tak jak robiły to stare interfejsy API tf.compat.v1.layers lub hub.Module.
W pełni obsługiwane ( kompletny przewodnik dostrajania TF2 SavedModel ). Użyj dowolnego hub.load:
m = hub.load(handle)
outputs = m(inputs, training=is_training)
lub hub.KerasLayer:
m =  hub.KerasLayer(handle, trainable=True)
outputs = m(inputs)
Tworzenie Funkcję API TF2 tf.saved_model.save() można wywołać z poziomu trybu zgodności. W pełni obsługiwane (zobacz kompletny przewodnik tworzenia TF2 SavedModel )

[1] „Tryb zgodności TF1 w TF2” odnosi się do połączonego efektu importowania TF2 z import tensorflow.compat.v1 as tf i uruchamiania tf.disable_v2_behavior() zgodnie z opisem w przewodniku migracji TensorFlow .