В этом документе описываются соглашения об 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 добавьте к URL-адресу модели TFJS
?tfjs-format=compressed, чтобы загрузить сжатый файл, или/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=compressed | https://tfhub.dev/google/spice/2?tf-hub-format=compressed |
| 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=compressed | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Кроме того, некоторые модели также хранятся в формате, который можно читать непосредственно из удаленного хранилища без предварительной загрузки. Это особенно полезно, если локальное хранилище недоступно, например, при запуске модели TF.js в браузере или загрузке сохраненной модели в Colab . Следует помнить, что чтение моделей, размещенных удаленно, без предварительной загрузки локально может увеличить задержку.
| Тип | URL модели | Тип ответа | URL-параметр | URL запроса |
| TensorFlow (SavedModel, формат TF1 Hub) | https://tfhub.dev/google/spice/2 | Строка (Путь к папке GCS, где хранится несжатая модель) | ?tf-hub-format=uncompressed | https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed |
| TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .json | ?tfjs-format=file | 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 автоматически загружает сжатую модель. Также их можно загрузить вручную, добавив к URL-адресу модели параметр ?tf-hub-format=compressed , например:
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
Архивы tar, предназначенные для использования с устаревшим форматом TF1 Hub, также будут содержать файл ./tfhub_module.pb .
При вызове одного из API загрузки моделей библиотеки tensorflow_hub ( hub.KerasLayer , hub.load и т. д.) библиотека загружает модель, распаковывает её и кэширует локально. Библиотека tensorflow_hub ожидает, что URL-адреса моделей будут версионированными и что содержимое модели в данной версии будет неизменяемым, чтобы её можно было кэшировать неограниченно долго. Подробнее о кэшировании моделей можно узнать здесь.

Несжатый хостинг
When the environment variable TFHUB_MODEL_LOAD_FORMAT or the command-line flag --tfhub_model_load_format is set to UNCOMPRESSED , the model is read directly from remote storage (GCS) instead of being downloaded and uncompressed locally. When this behavior is enabled the library appends ?tf-hub-format=uncompressed to the model URL. That request returns the path to the folder on GCS that contains the uncompressed model files. As an example,
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
возвраты
gs://kaggle-tfhub-models-uncompressed/tfhub-modules/google/spice/2/uncompressed в теле ответа 303. Затем библиотека считывает модель из указанного места назначения GCS.