Questo documento descrive le convenzioni URL utilizzate quando si ospitano tutti i tipi di modelli su tfhub.dev : modelli TFJS, TF Lite e TensorFlow. Descrive inoltre il protocollo basato su HTTP(S) implementato dalla libreria tensorflow_hub
per caricare modelli TensorFlow da tfhub.dev e servizi compatibili nei programmi TensorFlow.
La sua caratteristica principale è utilizzare lo stesso URL nel codice per caricare un modello e in un browser per visualizzare la documentazione del modello.
Convenzioni generali sugli URL
tfhub.dev supporta i seguenti formati URL:
- Gli editori di TF Hub seguono
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
- Le raccolte TF Hub seguono
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
- I modelli TF Hub hanno un URL con versione
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>
e un URL senza versione<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>
che si risolve nella versione più recente del modello.
I modelli TF Hub possono essere scaricati come risorse compresse aggiungendo parametri URL all'URL del modello tfhub.dev . Tuttavia, i parametri URL richiesti per raggiungere questo obiettivo dipendono dal tipo di modello:
- Modelli TensorFlow (entrambi i formati SavedModel e TF1 Hub): aggiungi
?tf-hub-format=compressed
all'URL del modello TensorFlow. - Modelli TFJS: aggiungi
?tfjs-format=compressed
all'URL del modello TFJS per scaricare il file compresso o/model.json?tfjs-format=file
da leggere dall'archivio remoto. - Modelli TF Lite: aggiungi
?lite-format=tflite
all'URL del modello TF Lite.
Per esempio:
Tipo | URL del modello | Scarica tipo | Parametro URL | Scarica l'URL |
TensorFlow (SavedModel, formato hub TF1) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=compresso | https://tfhub.dev/google/spice/2?tf-hub-format=compressed |
TF Lite | https://tfhub.dev/google/lite-model/spice/1 | .tflite | ?formato-lite=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=compresso | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Inoltre, alcuni modelli sono ospitati anche in un formato che può essere letto direttamente dall'archivio remoto senza essere scaricato. Ciò è particolarmente utile se non è disponibile spazio di archiviazione locale, ad esempio quando si esegue un modello TF.js nel browser o si carica un SavedModel su Colab . Tieni presente che la lettura di modelli ospitati in remoto senza essere scaricati localmente può aumentare la latenza.
Tipo | URL del modello | Tipo di risposta | Parametro URL | Richiedi URL |
TensorFlow (SavedModel, formato hub TF1) | https://tfhub.dev/google/spice/2 | Stringa (percorso della cartella GCS in cui è archiviato il modello non compresso) | ?tf-hub-format=non compresso | https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed |
TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .json | ?tfjs-formato=file | https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file |
protocollo della libreria tensorflow_hub
Questa sezione descrive come ospitiamo i modelli su tfhub.dev da utilizzare con la libreria tensorflow_hub. Se desideri ospitare il tuo repository di modelli per lavorare con la libreria tensorflow_hub, il tuo servizio di distribuzione HTTP(s) dovrebbe fornire un'implementazione di questo protocollo.
Tieni presente che questa sezione non riguarda l'hosting dei modelli TF Lite e TFJS poiché non vengono scaricati tramite la libreria tensorflow_hub
. Per ulteriori informazioni sull'hosting di questi tipi di modelli, consulta la pagina sopra .
Hosting compresso
I modelli vengono archiviati su tfhub.dev come file tar.gz compressi. Per impostazione predefinita, la libreria tensorflow_hub scarica automaticamente il modello compresso. Possono anche essere scaricati manualmente aggiungendo ?tf-hub-format=compressed
all'URL del modello, ad esempio:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
La radice dell'archivio è la radice della directory del modello e dovrebbe contenere un SavedModel, come in questo esempio:
# 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
I tarball da utilizzare con il formato legacy TF1 Hub conterranno anche un file ./tfhub_module.pb
.
Quando viene richiamata una delle API di caricamento del modello della libreria tensorflow_hub
( hub.KerasLayer , hub.load , ecc.), la libreria scarica il modello, lo decomprime e lo memorizza nella cache locale. La libreria tensorflow_hub
si aspetta che gli URL del modello abbiano una versione e che il contenuto del modello di una determinata versione sia immutabile, in modo che possa essere memorizzato nella cache a tempo indeterminato. Ulteriori informazioni sui modelli di memorizzazione nella cache .
Hosting non compresso
Quando la variabile di ambiente TFHUB_MODEL_LOAD_FORMAT
o il flag della riga di comando --tfhub_model_load_format
è impostato su UNCOMPRESSED
, il modello viene letto direttamente dall'archivio remoto (GCS) invece di essere scaricato e decompresso localmente. Quando questo comportamento è abilitato, la libreria aggiunge ?tf-hub-format=uncompressed
all'URL del modello. Tale richiesta restituisce il percorso della cartella su GCS che contiene i file del modello non compresso. Ad esempio,
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
ritorna
gs://tfhub-modules/google/spice/2/uncompressed
nel corpo della risposta 303. La libreria legge quindi il modello da quella destinazione GCS.