W tym dokumencie opisano konwencje adresów URL stosowane podczas hostowania wszystkich typów modeli na tfhub.dev — modele TFJS, TF Lite i TensorFlow. Opisano także protokół oparty na HTTP(S) zaimplementowany przez bibliotekę tensorflow_hub w celu ładowania modeli TensorFlow z tfhub.dev i kompatybilnych usług do programów TensorFlow.
Jego kluczową cechą jest użycie tego samego adresu URL w kodzie do załadowania modelu i w przeglądarce do przeglądania dokumentacji modelu.
Ogólne konwencje dotyczące adresów URL
tfhub.dev obsługuje następujące formaty adresów URL:
-  Wydawcy TF Hub śledzą 
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher> -  Kolekcje TF Hub śledzą 
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name> -  Modele TF Hub mają wersjonowany adres URL 
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>i niewersjonowany adres URL<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>oznacza najnowszą wersję modelu. 
Modele TF Hub można pobrać jako skompresowane zasoby, dołączając parametry adresu URL do adresu URL modelu tfhub.dev . Jednak parametry adresu URL wymagane do osiągnięcia tego zależą od typu modelu:
-  Modele TensorFlow (zarówno formaty SavedModel, jak i TF1 Hub): dołącz 
?tf-hub-format=compresseddo adresu URL modelu TensorFlow. -  Modele TFJS: dołącz 
?tfjs-format=compresseddo adresu URL modelu TFJS, aby pobrać skompresowany lub/model.json?tfjs-format=filedo odczytania ze zdalnej pamięci. -  Modele TF Lite: dołącz 
?lite-format=tflitedo adresu URL modelu TF Lite. 
Na przykład:
| Typ | Adres URL modelu | Typ pobierania | Parametr adresu URL | Pobierz adres URL | 
| TensorFlow (SavedModel, format TF1 Hub) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=skompresowany | https://tfhub.dev/google/spice/2?tf-hub-format=compressed | 
| TF Lite | https://tfhub.dev/google/lite-model/spice/1 | .tflite | ?lite-format=tflite | https://tfhub.dev/google/lite-model/spice/1?lite-format=tflite | 
| TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .tar.gz | ?tfjs-format=skompresowany | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed | 
Ponadto niektóre modele są również hostowane w formacie, który można odczytać bezpośrednio z magazynu zdalnego bez konieczności pobierania. Jest to szczególnie przydatne, jeśli nie ma dostępnej pamięci lokalnej, np. uruchamiając model TF.js w przeglądarce lub ładując SavedModel w Colab . Należy pamiętać, że odczytywanie modeli hostowanych zdalnie bez konieczności lokalnego pobierania może zwiększyć opóźnienia.
| Typ | Adres URL modelu | Typ odpowiedzi | Parametr adresu URL | Adres URL żądania | 
| TensorFlow (SavedModel, format TF1 Hub) | https://tfhub.dev/google/spice/2 | Ciąg (Ścieżka do folderu GCS, w którym przechowywany jest nieskompresowany model) | ?tf-hub-format=nieskompresowany | https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed | 
| TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .json | ?tfjs-format=plik | https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file | 
protokół biblioteki tensorflow_hub
W tej sekcji opisano, w jaki sposób hostujemy modele w serwisie tfhub.dev do użytku z biblioteką tensorflow_hub. Jeśli chcesz hostować własne repozytorium modeli do pracy z biblioteką tensorflow_hub, Twoja usługa dystrybucji HTTP(s) powinna zapewniać implementację tego protokołu.
 Należy pamiętać, że ta sekcja nie dotyczy hostowania modeli TF Lite i TFJS, ponieważ nie są one pobierane za pośrednictwem biblioteki tensorflow_hub . Więcej informacji na temat hostingu tych typów modeli można znaleźć powyżej .
Skompresowany hosting
 Modele są przechowywane na tfhub.dev jako skompresowane pliki tar.gz. Domyślnie biblioteka tensorflow_hub automatycznie pobiera skompresowany model. Można je również pobrać ręcznie, dołączając ?tf-hub-format=compressed do adresu URL modelu, na przykład:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
Katalog główny archiwum jest katalogiem głównym modelu i powinien zawierać plik SavedModel, jak w tym przykładzie:
# Create a compressed model from a SavedModel directory.
$ tar -cz -f model.tar.gz --owner=0 --group=0 -C /tmp/export-model/ .
# Inspect files inside a compressed model
$ tar -tf model.tar.gz
./
./variables/
./variables/variables.data-00000-of-00001
./variables/variables.index
./assets/
./saved_model.pb
 Tarballe do użytku ze starszym formatem TF1 Hub będą również zawierać plik ./tfhub_module.pb .
 Po wywołaniu jednego z interfejsów API ładowania modelu biblioteki tensorflow_hub ( hub.KerasLayer , hub.load itp.) biblioteka pobiera model, dekompresuje model i buforuje go lokalnie. Biblioteka tensorflow_hub oczekuje, że adresy URL modelu są wersjonowane i że zawartość modelu w danej wersji jest niezmienna, dzięki czemu można ją buforować w nieskończoność. Dowiedz się więcej o modelach buforowania . 

Nieskompresowany hosting
 Gdy zmienna środowiskowa TFHUB_MODEL_LOAD_FORMAT lub flaga wiersza poleceń --tfhub_model_load_format jest ustawiona na UNCOMPRESSED , model jest odczytywany bezpośrednio z magazynu zdalnego (GCS), zamiast być pobierany i dekompresowany lokalnie. Gdy to zachowanie jest włączone, biblioteka dołącza ?tf-hub-format=uncompressed do adresu URL modelu. To żądanie zwraca ścieżkę do folderu w GCS, który zawiera nieskompresowane pliki modeli. Jako przykład,
 <a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
 powraca
 gs://tfhub-modules/google/spice/2/uncompressed w treści odpowiedzi 303. Następnie biblioteka odczytuje model z tego miejsca docelowego GCS.