Ayuda a proteger la Gran Barrera de Coral con TensorFlow en Kaggle Únete Challenge

Protocolo de alojamiento de modelos

Este documento describe las convenciones utilizadas URL cuando se alojan todos los tipos de modelos en tfhub.dev - TFJS, TF Lite y modelos TensorFlow. También describe el HTTP (S) de protocolo basado implementado por el tensorflow_hub biblioteca con el fin de cargar modelos TensorFlow de tfhub.dev y servicios compatibles en los programas 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 soporta los siguientes formatos de URL:

  • TF editores Hub siguen https://tfhub.dev/<publisher>
  • Colecciones TF Hub siguen https://tfhub.dev/<publisher>/collection/<collection_name>
  • Modelos TF Hub tienen versionado URL https://tfhub.dev/<publisher>/<model_name>/<version> y no versionado URL https://tfhub.dev/<publisher>/<model_name> que se resuelve en la última versión del modelo.

Modelos TF Hub se pueden descargar como activos comprimido añadiendo parámetros de URL a la tfhub.dev URL modelo. Sin embargo, los parámetros de URL necesarios para lograrlo dependen del tipo de modelo:

  • Modelos TensorFlow (ambos formatos SavedModel y TF1 cubo): append ?tf-hub-format=compressed Al modelo TensorFlow URL.
  • TFJS modelos: append ?tfjs-format=compressed al modelo TFJS URL para descargar el comprimido o /model.json?tfjs-format=file de leer si de almacenamiento remoto.
  • Modelos Lite TF: append ?lite-format=tflite al modelo url TF Lite.

Por ejemplo:

Escribe URL del modelo Tipo de descarga Parámetro de URL URL de descarga
TensorFlow (modelo guardado, formato TF1 Hub) https: //tfhub.dev/ google / especias / 2 .tar.gz ? tf-hub-format = comprimido https: //tfhub.dev? / google / especias / 2 tf-hub-format = comprimido
TF Lite https: //tfhub.dev/ google / lite-modelo / especia / 1 .tflite ? lite-format = tflite https: //tfhub.dev? / google / Lite-modelo / especias / 1 lite-format = tflite
TF.js https: //tfhub.dev/ google / tfjs-modelo / especia / 2 / default / 1 .tar.gz ? tfjs-format = comprimido https: //tfhub.dev? / google / tfjs-modelo / especias / 2 / default / 1 tfjs formato comprimido =

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, tales como la ejecución de un modelo de TF.js en el navegador o en la carga de un SavedModel Colab . Tenga en cuenta que la lectura de modelos alojados de forma remota sin descargarlos localmente puede aumentar la latencia.

Escribe URL del modelo Tipo de respuesta Parámetro de URL Solicitar URL
TensorFlow (modelo guardado, formato TF1 Hub) https: //tfhub.dev/ google / especias / 2 Cadena (ruta a la carpeta GCS donde se almacena el modelo sin comprimir) ? tf-hub-format = sin comprimir https: //tfhub.dev? / google / especias / 2 tf-hub-format = sin comprimir
TF.js https: //tfhub.dev/ google / tfjs-modelo / especia / 2 / default / 1 .json ? tfjs-format = archivo https: //tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file

protocolo de biblioteca tensorflow_hub

En esta sección se describe cómo somos los anfitriones de modelos en tfhub.dev para su uso 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 se ocupa de alojamiento modelos TF Lite y TFJS ya que no se descargan a través de la tensorflow_hub biblioteca. Para más información sobre alojamiento de este tipo de modelo, por favor verifica anterior .

Alojamiento comprimido

Los modelos se almacenan en tfhub.dev como archivos tar.gz comprimido. De forma predeterminada, la biblioteca tensorflow_hub descarga automáticamente el modelo comprimido. También se pueden descargar manualmente añadiendo el ?tf-hub-format=compressed Al modelo de URL, 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 modelo guardado, 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

Tarballs para su uso con el legado formato TF1 Hub también contendrán una ./tfhub_module.pb archivo.

Cuando uno de tensorflow_hub API de modelo de carga de la biblioteca se invoca ( hub.KerasLayer , hub.load , etc.) La biblioteca de descargas del modelo, descomprime el modelo y lo almacena en caché localmente. Los tensorflow_hub Espera biblioteca que las direcciones URL modelo son versionados y que el contenido del modelo de una determinada versión es inmutable, de modo que pueda ser almacenado en caché de forma indefinida. Más información sobre el almacenamiento en caché modelos .

Alojamiento sin comprimir

Cuando la variable de entorno TFHUB_MODEL_LOAD_FORMAT o la bandera 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 ser descargado y descomprimido localmente. Cuando este comportamiento se habilita la APPENDs biblioteca ?tf-hub-format=uncompressed a la URL modelo. Esa solicitud devuelve la ruta a la carpeta en GCS que contiene los archivos del modelo sin comprimir. Como ejemplo,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
devoluciones
gs://tfhub-modules/google/spice/2/uncompressed en el cuerpo de la respuesta 303. Luego, la biblioteca lee el modelo de ese destino de GCS.