В этом документе описываются соглашения URL-адресов, используемые при размещении всех типов моделей на tfhub.dev — моделей TFJS, TF Lite и TensorFlow. Он также описывает протокол на основе HTTP(S), реализованный библиотекой tensorflow_hub
для загрузки моделей TensorFlow из tfhub.dev и совместимых сервисов в программы TensorFlow.
Его ключевой особенностью является использование одного и того же URL-адреса в коде для загрузки модели и в браузере для просмотра документации модели.
Общие соглашения об URL-адресах
tfhub.dev поддерживает следующие форматы URL:
- Издатели TF Hub подписываются на
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
- Коллекции TF Hub следуют за
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
- Модели TF Hub имеют версионный URL
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>
и неверсионный URL<a href="https://tfhub.dev/">https://tfhub.dev/</a><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
для чтения из удаленного хранилища. - Модели 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=compressed |
ТФ Лайт | 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=compressed |
Кроме того, некоторые модели также хранятся в формате, который можно прочитать непосредственно из удаленного хранилища без загрузки. Это особенно полезно, если нет доступного локального хранилища, например, при запуске модели 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
.
Когда вызывается один из 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, содержащей несжатые файлы модели. В качестве примера:
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
возвращает
gs://tfhub-modules/google/spice/2/uncompressed
в теле ответа 303. Затем библиотека считывает модель из этого места назначения GCS.