¡Reserva! Google I / O regresa del 18 al 20 de mayo Regístrese ahora
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Almacenamiento en caché de descargas de modelos de TF Hub

Descripción general

La biblioteca tensorflow_hub actualmente admite dos modos para descargar modelos. De forma predeterminada, un modelo se descarga como un archivo comprimido y se almacena en caché en el disco. En segundo lugar, los modelos se pueden leer directamente desde el almacenamiento remoto en TensorFlow. De cualquier manera, las llamadas a tensorflow_hub funciones de tensorflow_hub en el código Python real pueden y deben continuar usando las URL canónicas tfhub.dev de modelos, que son portátiles entre sistemas y navegables para la documentación. En el raro caso de que el código de usuario necesite la ubicación real del sistema de archivos (después de descargar y descomprimir, o después de resolver un identificador de modelo en una ruta de sistema de archivos), se puede obtener mediante la funciónhub.resolve(handle) .

Almacenamiento en caché de descargas comprimidas

De forma tensorflow_hub biblioteca tensorflow_hub almacena en caché los modelos en el sistema de archivos cuando se han descargado de tfhub.dev (u otros sitios de alojamiento ) y se descomprimen. Este modo se recomienda para la mayoría de los entornos, excepto si el espacio en disco es escaso pero el ancho de banda y la latencia de la red son excelentes.

La ubicación de descarga predeterminada es un directorio temporal local, pero se puede personalizar configurando la variable de entorno TFHUB_CACHE_DIR (recomendado) o pasando el indicador de línea de comandos --tfhub_cache_dir . La ubicación de caché predeterminada /tmp/tfhub_modules (o lo que sea que se os.path.join(tempfile.gettempdir(), "tfhub_modules") ) debería funcionar en la mayoría de los casos.

Los usuarios que prefieren el almacenamiento en caché persistente al reiniciar el sistema pueden configurar TFHUB_CACHE_DIR en una ubicación en su directorio de inicio. Por ejemplo, un usuario del shell bash en un sistema Linux puede agregar una línea como la siguiente a ~/.bashrc

export TFHUB_CACHE_DIR=$HOME/.cache/tfhub_modules

... reinicie el shell, y luego se utilizará esta ubicación. Cuando utilice una ubicación persistente, tenga en cuenta que no hay una limpieza automática.

Leer desde almacenamiento remoto

Los usuarios pueden indicar a la biblioteca tensorflow_hub que lea directamente los modelos desde el almacenamiento remoto (GCS) en lugar de descargar los modelos localmente con

os.environ["TFHUB_MODEL_LOAD_FORMAT"] = "UNCOMPRESSED"

o estableciendo el indicador de la línea de comandos --tfhub_model_load_format en UNCOMPRESSED . De esta manera, no se necesita un directorio de almacenamiento en caché, lo cual es especialmente útil en entornos que brindan poco espacio en el disco pero una conexión rápida a Internet.

Ejecutar en TPU en portátiles Colab

En colab.research.google.com , la descarga de modelos comprimidos entrará en conflicto con el tiempo de ejecución de TPU, ya que la carga de trabajo de cálculo se delega a otra máquina que no tiene acceso a la ubicación de la caché de forma predeterminada. Hay dos soluciones para esta situación:

1) Use un depósito de GCS al que pueda acceder el trabajador de TPU

La solución más sencilla es indicar a la biblioteca tensorflow_hub que lea los modelos del depósito GCS de TF Hub como se explicó anteriormente. Los usuarios con su propio depósito de GCS pueden, en cambio, especificar un directorio en su depósito como la ubicación de la caché con un código como

import os
os.environ["TFHUB_CACHE_DIR"] = "gs://my-bucket/tfhub-modules-cache"

... antes de llamar a la biblioteca tensorflow_hub .

2) Redirigir todas las lecturas a través del host de Colab

Otra solución es redirigir todas las lecturas (incluso de las variables grandes) a través del host de Colab:

load_options =
tf.saved_model.LoadOptions(experimental_io_device='/job:localhost')
reloaded_model = hub.load("https://tfhub.dev/...", options=load_options)