Форматы моделей TF Hub
TF Hub предлагает повторно используемые фрагменты модели, которые можно загружать обратно, создавать на их основе и, возможно, повторно обучать в программе TensorFlow. Они бывают двух разных форматов:
- Пользовательский формат TF1 Hub . Его основное предполагаемое использование — в TF1 (или в режиме совместимости с TF1 в TF2) через API-интерфейс hub.Module . Полная информация о совместимости ниже .
- Родной формат TF2 SavedModel . Его основное предполагаемое использование — в TF2 через API hub.load и hub.KerasLayer . Полная информация о совместимости ниже .
Формат модели можно найти на странице модели по адресу l10n-tfhub.dev . Загрузка/вывод модели, точная настройка или создание могут не поддерживаться в TF1/2 в зависимости от форматов модели.
Совместимость формата TF1 Hub
Операция | Режим совместимости TF1/TF1 в TF2 [1] | ТФ2 |
Загрузка/вывод | Полностью поддерживается ( полное руководство по загрузке формата TF1 Hub ) m = hub.Module(handle)
outputs = m(inputs) | Рекомендуется использовать либо hub.load m = hub.load(handle)
outputs = m.signatures["sig"](inputs) , либо hub.KerasLayer 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. Подумайте о создании SavedModel в TF2. | Не поддерживается |
Совместимость с TF2 SavedModel
Не поддерживается до TF1.15.
Операция | Режим совместимости TF1.15/TF1 в TF2 [1] | ТФ2 |
Загрузка/вывод | Используйте либо hub.load m = hub.load(handle)
outputs = m(inputs) , либо hub.KerasLayer m = hub.KerasLayer(handle)
outputs = m(inputs) . | Полностью поддерживается ( полное руководство по загрузке TF2 SavedModel ). Используйте либо hub.load m = hub.load(handle)
outputs = m(inputs) , либо hub.KerasLayer m = hub.KerasLayer(handle)
outputs = m(inputs) . |
Тонкая настройка | Поддерживается для hub.KerasLayer, используемого в tf.keras.Model при обучении с помощью Model.fit() или обучении в Estimator, чей 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) , либо hub.KerasLayer: 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 .