Este documento describe las convenciones de URL utilizadas al alojar todos los tipos de modelos en tfhub.dev : modelos TFJS, TF Lite y TensorFlow. También describe el protocolo basado en HTTP(S) implementado por la biblioteca tensorflow_hub
para cargar modelos de TensorFlow desde tfhub.dev y servicios compatibles en programas de TensorFlow.
Su característica clave es usar la misma URL en el código para cargar un modelo y en un navegador para ver la documentación del modelo.
Convenciones generales de URL
tfhub.dev admite los siguientes formatos de URL:
- Los editores de TF Hub siguen
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
- Las colecciones de TF Hub siguen
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
- Los modelos TF Hub tienen la URL versionada
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>
y la URL no versionada<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>
que resuelve la última versión del modelo.
Los modelos de TF Hub se pueden descargar como activos comprimidos agregando parámetros de URL a la URL del modelo tfhub.dev . Sin embargo, los parámetros de URL necesarios para lograrlo dependen del tipo de modelo:
- Modelos de TensorFlow (formatos SavedModel y TF1 Hub): agregue
?tf-hub-format=compressed
a la URL del modelo de TensorFlow. - Modelos TFJS: agregue
?tfjs-format=compressed
a la URL del modelo TFJS para descargar el archivo comprimido o/model.json?tfjs-format=file
leerlo desde el almacenamiento remoto. - Modelos TF Lite: agregue
?lite-format=tflite
a la URL del modelo TF Lite.
Por ejemplo:
Tipo | URL del modelo | Tipo de descarga | parámetro de URL | Descargar URL |
TensorFlow (modelo guardado, 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-formato=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-formato=comprimido | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Además, algunos modelos también están alojados en un formato que se puede leer directamente desde el almacenamiento remoto sin necesidad de descargarlos. Esto es especialmente útil si no hay almacenamiento local disponible, como ejecutar un modelo TF.js en el navegador o cargar un SavedModel en Colab . Tenga en cuenta que leer modelos alojados de forma remota sin descargarlos localmente puede aumentar la latencia.
Tipo | URL del modelo | Tipo de respuesta | parámetro de URL | Solicitar URL |
TensorFlow (modelo guardado, formato TF1 Hub) | https://tfhub.dev/google/spice/2 | Cadena (Ruta a la carpeta GCS donde se almacena el modelo sin comprimir) | ?tf-hub-format=sin comprimir | 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=archivo | https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file |
protocolo de biblioteca tensorflow_hub
Esta sección describe cómo alojamos modelos en tfhub.dev para usarlos con la biblioteca tensorflow_hub. Si desea alojar su propio repositorio de modelos para trabajar con la biblioteca tensorflow_hub, su servicio de distribución HTTP debe proporcionar una implementación de este protocolo.
Tenga en cuenta que esta sección no aborda el alojamiento de los modelos TF Lite y TFJS, ya que no se descargan a través de la biblioteca tensorflow_hub
. Para obtener más información sobre cómo alojar estos tipos de modelos, consulte arriba .
Alojamiento comprimido
Los modelos se almacenan en tfhub.dev como archivos comprimidos tar.gz. De forma predeterminada, la biblioteca tensorflow_hub descarga automáticamente el modelo comprimido. También se pueden descargar manualmente agregando ?tf-hub-format=compressed
a la URL del modelo, por ejemplo:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
La raíz del archivo es la raíz del directorio del modelo y debe contener un SavedModel, como en este ejemplo:
# 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
Los archivos tar para usar con el formato TF1 Hub heredado también contendrán un archivo ./tfhub_module.pb
.
Cuando se invoca una de las API de carga de modelos de la biblioteca tensorflow_hub
( hub.KerasLayer , hub.load , etc.), la biblioteca descarga el modelo, lo descomprime y lo almacena en caché localmente. La biblioteca tensorflow_hub
espera que las URL del modelo tengan versiones y que el contenido del modelo de una versión determinada sea inmutable, de modo que pueda almacenarse en caché indefinidamente. Obtenga más información sobre los modelos de almacenamiento en caché .
Alojamiento sin comprimir
Cuando la variable de entorno TFHUB_MODEL_LOAD_FORMAT
o el indicador de línea de comandos --tfhub_model_load_format
se establece en UNCOMPRESSED
, el modelo se lee directamente desde el almacenamiento remoto (GCS) en lugar de descargarlo y descomprimirlo localmente. Cuando este comportamiento está habilitado, la biblioteca agrega ?tf-hub-format=uncompressed
a la URL del modelo. Esa solicitud devuelve la ruta a la carpeta en GCS que contiene los archivos del modelo sin comprimir. Como ejemplo,
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
regresa
gs://tfhub-modules/google/spice/2/uncompressed
en el cuerpo de la respuesta 303. Luego, la biblioteca lee el modelo desde ese destino GCS.