В этом документе описываются соглашения об 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.