Сохраните дату! Google I / O возвращается 18-20 мая Зарегистрируйтесь сейчас
Эта страница переведена с помощью Cloud Translation API.
Switch to English

Протокол хостинга модели

В этом документе описываются соглашения URL, используемые при размещении всех типов моделей на tfhub.dev - модели TFJS, TF Lite и TensorFlow. Он также описывает протокол на основе HTTP (S), реализованный библиотекой tensorflow_hub для загрузки моделей TensorFlow из tfhub.dev и совместимых сервисов в программы TensorFlow .

Его ключевая особенность - использовать один и тот же URL-адрес в коде для загрузки модели и в браузере для просмотра документации модели.

Общие соглашения об URL

tfhub.dev поддерживает следующие форматы URL:

  • Издатели TF Hub https://tfhub.dev/<publisher>
  • Коллекции TF Hub следуют https://tfhub.dev/<publisher>/collection/<collection_name>
  • Модели TF Hub имеют URL-адрес с версией https://tfhub.dev/<publisher>/<model_name>/<version> и неверсированный URL-адрес https://tfhub.dev/<publisher>/<model_name> который соответствует последней версии модели.

Модели TF Hub можно загрузить как сжатые ресурсы, добавив параметры URL к URL- адресу модели tfhub.dev . Однако необходимые для этого параметры URL зависят от типа модели:

  • Модели TensorFlow (форматы SavedModel и TF1 Hub): добавьте ?tf-hub-format=compressed к URL-адресу модели TensorFlow.
  • Модели TFJS: добавьте ?tfjs-format=compressed к URL-адресу модели TFJS, чтобы загрузить сжатый /model.json?tfjs-format=file или /model.json?tfjs-format=file для чтения из удаленного хранилища.
  • Модели TF lite: добавьте ?lite-format=tflite к URL-адресу модели TF Lite.

Например:

Тип URL модели Тип загрузки Параметр URL Скачать URL
TensorFlow (SavedModel, формат TF1 Hub) https: //tfhub.dev/google/spice/2 .tar.gz ? tf-hub-format = сжатый https: //tfhub.dev/google/spice/2? tf-hub-format = сжатый
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 = сжатый https: //tfhub.dev/google/tfjs-model/spice/2/default/1? tfjs-format = сжатый

Кроме того, некоторые модели также размещаются в формате, который можно читать непосредственно из удаленного хранилища без загрузки. Это особенно полезно, если нет доступного локального хранилища, такого как запуск модели TF.js в браузере или загрузка SavedModel в Colab . Имейте в виду, что модели чтения, которые размещены удаленно, но не загружаются локально, могут увеличить задержку.

Тип URL модели Тип ответа Параметр URL URL-адрес запроса
TensorFlow (SavedModel, формат TF1 Hub) https: //tfhub.dev/google/spice/2 Строка (Путь к папке GCS, в которой хранится несжатая модель) ? tf-hub-format = без сжатия https: //tfhub.dev/google/spice/2? tf-hub-format = без сжатия
TF.js https: //tfhub.dev/google/tfjs-model/spice/2/default/1 .json ? tfjs-format = файл https: //tfhub.dev/google/tfjs-model/spice/2/default/1/model.json? tfjs-format = file

протокол библиотеки tensorflow_hub

В этом разделе описывается, как мы размещаем модели на tfhub.dev для использования с библиотекой tensorflow_hub. Если вы хотите разместить свой собственный репозиторий моделей для работы с библиотекой tensorflow_hub, ваша служба распространения HTTP (s) должна предоставить реализацию этого протокола.

Обратите внимание, что в этом разделе не рассматриваются модели хостинга TF Lite и TFJS, поскольку они не загружаются через библиотеку tensorflow_hub . Для получения дополнительной информации о размещении этих типов моделей, пожалуйста, проверьте выше .

Сжатый хостинг

Модели хранятся на tfhub.dev в виде сжатых файлов tar.gz. По умолчанию библиотека tensorflow_hub автоматически загружает сжатую модель. Их также можно загрузить вручную, добавив ?tf-hub-format=compressed к URL-адресу модели, например:

wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed

Корень архива является корнем каталога модели и должен содержать SavedModel, как в этом примере:

# 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

Тарболлы для использования с устаревшим форматом TF1 Hub также будут содержать файл ./tfhub_module.pb .

Когда tensorflow_hub один из API загрузки модели библиотеки tensorflow_hub ( hub.KerasLayer , hub.load и т. Д.), Библиотека загружает модель, распаковывает модель и кэширует ее локально. Библиотека tensorflow_hub ожидает, что URL-адреса моделей имеют версии и что содержимое модели данной версии является неизменным, так что его можно кэшировать на неопределенный срок. Узнайте больше о моделях кэширования .

Несжатый хостинг

Когда для переменной среды TFHUB_MODEL_LOAD_FORMAT или флага командной строки --tfhub_model_load_format установлено значение UNCOMPRESSED , модель считывается непосредственно из удаленного хранилища (GCS), а не загружается и распаковывается локально. Когда это поведение включено, библиотека добавляет ?tf-hub-format=uncompressed к URL-адресу модели. Этот запрос возвращает путь к папке на GCS, содержащей несжатые файлы модели. В качестве примера,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
возвращается
gs://tfhub-modules/google/spice/2/uncompressed в теле ответа 303. Затем библиотека считывает модель из этого пункта назначения GCS.