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:
- Niestandardowy format koncentratora TF1 . Jego głównym zamierzonym zastosowaniem jest TF1 (lub tryb zgodności TF1 w TF2) poprzez jego hub.Module API . Pełne informacje o kompatybilności poniżej .
- Natywny format SavedModel TF2 . Jego głównym zamierzonym zastosowaniem jest TF2 poprzez interfejsy API hub.load i hub.KerasLayer . Pełne informacje o kompatybilności poniżej .
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 .