Este documento descreve as convenções de URL usadas ao hospedar todos os tipos de modelos no tfhub.dev — modelos TFJS, TF Lite e TensorFlow. Também descreve o protocolo baseado em HTTP(S) implementado pela biblioteca tensorflow_hub para carregar modelos TensorFlow do tfhub.dev e serviços compatíveis em programas TensorFlow.
Sua principal característica é usar a mesma URL no código para carregar um modelo e no navegador para visualizar a documentação do modelo.
Convenções gerais de URL
O tfhub.dev suporta os seguintes formatos de URL:
- Os editores do TF Hub podem ser acessados em
https://tfhub.dev/<publisher> - As coleções do TF Hub podem ser acessadas
https://tfhub.dev/<publisher>/collection/<collection_name> - Os modelos do TF Hub possuem URLs versionadas:
https://tfhub.dev/<publisher>/<model_name>/<version>e URLs não versionadas:https://tfhub.dev/<publisher>/<model_name>, que direcionam para a versão mais recente do modelo.
Os modelos do TF Hub podem ser baixados como arquivos compactados adicionando parâmetros à URL do modelo em tfhub.dev . No entanto, os parâmetros de URL necessários para isso dependem do tipo de modelo:
- Para modelos TensorFlow (nos formatos SavedModel e TF1 Hub): adicione
?tf-hub-format=compressedà URL do modelo TensorFlow. - Modelos TFJS: adicione
?tfjs-format=compressedà URL do modelo TFJS para baixar o arquivo compactado ou/model.json?tfjs-format=filepara lê-lo de um armazenamento remoto. - Modelos TF Lite: adicione
?lite-format=tfliteà URL do modelo TF Lite.
Por exemplo:
| Tipo | URL do modelo | Tipo de download | Parâmetro de URL | URL para download |
| TensorFlow (Modelo Salvo, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=comprimido | 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=comprimido | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Além disso, alguns modelos também são hospedados em um formato que pode ser lido diretamente do armazenamento remoto sem precisar ser baixado. Isso é especialmente útil quando não há armazenamento local disponível, como ao executar um modelo TF.js no navegador ou carregar um SavedModel no Colab . Lembre-se de que ler modelos hospedados remotamente sem baixá-los localmente pode aumentar a latência.
| Tipo | URL do modelo | Tipo de resposta | Parâmetro de URL | URL de solicitação |
| TensorFlow (Modelo Salvo, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | String (Caminho para a pasta GCS onde o modelo descompactado está armazenado) | ?tf-hub-format=uncompressed | 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=arquivo | https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file |
protocolo da biblioteca tensorflow_hub
Esta seção descreve como hospedamos modelos no tfhub.dev para uso com a biblioteca tensorflow_hub. Se você deseja hospedar seu próprio repositório de modelos para trabalhar com a biblioteca tensorflow_hub, seu serviço de distribuição HTTP(s) deve fornecer uma implementação deste protocolo.
Observe que esta seção não aborda a hospedagem de modelos TF Lite e TFJS, visto que eles não são baixados pela biblioteca tensorflow_hub . Para obter mais informações sobre como hospedar esses tipos de modelo, consulte as informações acima .
Hospedagem compactada
Os modelos são armazenados no tfhub.dev como arquivos tar.gz compactados. Por padrão, a biblioteca tensorflow_hub baixa automaticamente o modelo compactado. Eles também podem ser baixados manualmente adicionando o parâmetro ?tf-hub-format=compressed à URL do modelo, por exemplo:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
A raiz do arquivo é a raiz do diretório do modelo e deve conter um arquivo SavedModel, como neste exemplo:
# 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
Os arquivos tar.gz para uso com o formato legado do TF1 Hub também conterão um arquivo ./tfhub_module.pb .
Quando uma das APIs de carregamento de modelos da biblioteca tensorflow_hub é invocada ( hub.KerasLayer , hub.load , etc.), a biblioteca baixa o modelo, descompacta-o e o armazena em cache localmente. A biblioteca tensorflow_hub espera que os URLs dos modelos sejam versionados e que o conteúdo do modelo de uma determinada versão seja imutável, para que possa ser armazenado em cache indefinidamente. Saiba mais sobre o armazenamento em cache de modelos .

Hospedagem sem compressão
Quando a variável de ambiente TFHUB_MODEL_LOAD_FORMAT ou o parâmetro de linha de comando --tfhub_model_load_format é definido como UNCOMPRESSED , o modelo é lido diretamente do armazenamento remoto (GCS) em vez de ser baixado e descompactado localmente. Quando esse comportamento está habilitado, a biblioteca adiciona ?tf-hub-format=uncompressed à URL do modelo. Essa solicitação retorna o caminho para a pasta no GCS que contém os arquivos do modelo descompactados. Por exemplo,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
retornos
gs://kaggle-tfhub-models-uncompressed/tfhub-modules/google/spice/2/uncompressed no corpo da resposta 303. A biblioteca então lê o modelo desse destino do GCS.