Благодарим за настройку Google I/O. Посмотреть все сеансы по запросу Смотреть по запросу

Совместимость моделей для TF1/TF2

Форматы моделей 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 .