Este documento descreve as convenções de URL usadas ao hospedar todos os tipos de modelo em tfhub.dev - modelos TFJS, TF Lite e TensorFlow. Ele também descreve o protocolo baseado em HTTP(S) implementado pela biblioteca tensorflow_hub
para carregar modelos TensorFlow de tfhub.dev e serviços compatíveis em programas TensorFlow.
Seu principal recurso é usar a mesma URL no código para carregar um modelo e em um navegador para visualizar a documentação do modelo.
Convenções gerais de URL
tfhub.dev oferece suporte aos seguintes formatos de URL:
- Os editores do TF Hub seguem
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
- As coleções do TF Hub seguem
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
- Os modelos do TF Hub têm url versionado
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>
e url não versionado<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>
que resolve para a versão mais recente do modelo.
Os modelos do TF Hub podem ser baixados como ativos compactados anexando parâmetros de URL ao URL do modelo tfhub.dev . No entanto, os parâmetros de URL necessários para conseguir isso dependem do tipo de modelo:
- Modelos TensorFlow (formatos SavedModel e TF1 Hub): anexe
?tf-hub-format=compressed
ao URL do modelo TensorFlow. - Modelos TFJS: anexe
?tfjs-format=compressed
ao URL do modelo TFJS para baixar o arquivo compactado ou/model.json?tfjs-format=file
para lê-lo do armazenamento remoto. - Modelos TF Lite: anexe
?lite-format=tflite
ao URL do modelo TF Lite.
Por exemplo:
Tipo | URL do modelo | Tipo de download | Parâmetro de URL | Baixar URL |
TensorFlow (SavedModel, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format = compactado | https://tfhub.dev/google/spice/2?tf-hub-format=comprimido |
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 = compactado | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=comprimido |
Além disso, alguns modelos também são hospedados em um formato que pode ser lido diretamente do armazenamento remoto sem ser baixado. Isso é especialmente útil se não houver armazenamento local disponível, como executar um modelo TF.js no navegador ou carregar um SavedModel no Colab . Esteja ciente de que a leitura de modelos hospedados remotamente sem serem baixados localmente pode aumentar a latência.
Tipo | URL do modelo | Tipo de resposta | Parâmetro de URL | Solicitar URL |
TensorFlow (SavedModel, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | String (Caminho para a pasta GCS onde o modelo descompactado está armazenado) | ?tf-hub-format=descompactado | 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 em tfhub.dev para uso com a biblioteca tensorflow_hub. Se você deseja hospedar seu próprio repositório de modelo 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, pois eles não são baixados por meio da biblioteca tensorflow_hub
. Para obter mais informações sobre como hospedar esses tipos de modelo, verifique acima .
Hospedagem Comprimida
Os modelos são armazenados em 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 anexando ?tf-hub-format=compressed
ao 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 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
Tarballs para uso com o formato legado do TF1 Hub também conterão um arquivo ./tfhub_module.pb
.
Quando uma das APIs de carregamento do modelo da biblioteca tensorflow_hub
é invocada ( hub.KerasLayer , hub.load , etc), a biblioteca baixa o modelo, descompacta o modelo e o armazena em cache localmente. A biblioteca tensorflow_hub
espera que os URLs do modelo 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 modelos de cache .
Hospedagem descompactada
Quando a variável de ambiente TFHUB_MODEL_LOAD_FORMAT
ou o sinalizador 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 é habilitado, a biblioteca anexa ?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 descompactado. Como exemplo,
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
retorna
gs://tfhub-modules/google/spice/2/uncompressed
no corpo da resposta 303. A biblioteca então lê o modelo desse destino GCS.