Форматы моделей TF Hub
TF Hub предлагает повторно используемые части моделей, которые можно загружать обратно, дорабатывать и, возможно, переобучать в программе TensorFlow. Они бывают двух разных форматов:
- Пользовательский формат TF1 Hub . Его основное предполагаемое использование — в TF1 (или режиме совместимости TF1 в TF2) через API-интерфейс Hub.Module . Полная информация о совместимости приведена ниже .
- Родной формат TF2 SavedModel . Его основное предполагаемое использование — в TF2 через API Hub.load и Hub.KerasLayer . Полная информация о совместимости приведена ниже .
Формат модели можно найти на странице модели на tfhub.dev . Загрузка/вывод модели, точная настройка или создание могут не поддерживаться в TF1/2 в зависимости от форматов модели.
Совместимость формата TF1 Hub
Операция | Режим совместимости TF1/TF1 в TF2 [1] | ТФ2 |
Загрузка/вывод | Полностью поддерживается ( полное руководство по загрузке формата TF1 Hub ) m = hub.Module(handle)
outputs = m(inputs) | Рекомендуется использовать либо Hub.loadm = hub.load(handle)
outputs = m.signatures["sig"](inputs) m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs) |
Тонкая настройка | Полностью поддерживается ( полное руководство по точной настройке формата TF1 Hub ) m = hub.Module(handle,
trainable=True,
tags=["train"]*is_training)
outputs = m(inputs) Примечание. Модули, которым не нужен отдельный граф поездов, не имеют тега поезда. | Не поддерживается |
Создание | Полностью поддерживается (см. полное руководство по созданию формата TF1 Hub ) Примечание. Формат TF1 Hub ориентирован на TF1 и лишь частично поддерживается в TF2. Рассмотрите возможность создания сохраненной модели TF2. | Не поддерживается |
Совместимость сохраненной модели TF2
Не поддерживается до TF1.15.
Операция | Режим совместимости TF1.15/TF1 в TF2 [1] | ТФ2 |
Загрузка/вывод | Используйте либо Hub.loadm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) | Полностью поддерживается ( полное руководство по загрузке TF2 SavedModel ). Используйте либо Hub.loadm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) |
Тонкая настройка | Поддерживается для Hub.KerasLayer, используемого в tf.keras.Model при обучении с помощью Model.fit() или обучении в оценщике, чей model_fn оборачивает модель в соответствии с пользовательским руководством model_fn . Примечание. Hub.KerasLayer не заполняет коллекции графов, как это делали старые API tf.compat.v1.layers или Hub.Module. | Полностью поддерживается ( полное руководство по тонкой настройке TF2 SavedModel ). Используйте либо Hub.load:m = hub.load(handle)
outputs = m(inputs, training=is_training) m = hub.KerasLayer(handle, trainable=True)
outputs = m(inputs) |
Создание | API TF2 tf.saved_model.save() можно вызвать из режима совместимости. | Полностью поддерживается (см. полное руководство по созданию TF2 SavedModel ). |
[1] «Режим совместимости TF1 в TF2» относится к комбинированному эффекту импорта TF2 с import tensorflow.compat.v1 as tf
и запуском tf.disable_v2_behavior()
, как описано в руководстве по миграции TensorFlow .