Благодарим за настройку Google I/O. Посмотреть все сеансы по запросу Смотреть по запросу

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

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

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

Общие правила URL

hub.tensorflow.google.cn поддерживает следующие форматы URL:

  • Издатели TF Hub следят за https://hub.tensorflow.google.cn/<publisher>
  • Коллекции TF Hub следуют https://hub.tensorflow.google.cn/<publisher>/collection/<collection_name>
  • Модели TF Hub имеют версию URL https://hub.tensorflow.google.cn/<publisher>/<model_name>/<version> и неверсионную версию https://hub.tensorflow.google.cn/<publisher>/<model_name> , который преобразуется в последнюю версию модели.

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

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

Например:

Тип URL-адрес модели Тип загрузки параметр URL URL-адрес загрузки
TensorFlow (SavedModel, формат TF1 Hub) https://hub.tensorflow.google.cn/google/spice/2 .tar.gz ?tf-hub-format=сжатый https://hub.tensorflow.google.cn/google/spice/2?tf-hub-format=compressed
ТФ Лайт https://hub.tensorflow.google.cn/google/lite-model/spice/1 .tflite ?lite-format=tflite https://hub.tensorflow.google.cn/google/lite-model/spice/1?lite-format=tflite
TF.js https://hub.tensorflow.google.cn/google/tfjs-model/spice/2/default/1 .tar.gz ?tfjs-format=сжатый https://hub.tensorflow.google.cn/google/tfjs-model/spice/2/default/1?tfjs-format=compressed

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

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

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

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

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

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

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

wget https://hub.tensorflow.google.cn/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 .

Когда вызывается один из 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://hub.tensorflow.google.cn/google/spice/2?tf-hub-format=uncompressed
возвращается
gs://tfhub-modules/google/spice/2/uncompressed в теле ответа 303. Затем библиотека считывает модель из этого места назначения GCS.