Compatibilidad de modelos para TF1/TF2

Formatos de modelo TF Hub

TF Hub ofrece piezas de modelo reutilizables que se pueden volver a cargar, construir y posiblemente volver a entrenar en un programa TensorFlow. Estos vienen en dos formatos diferentes:

El formato del modelo se puede encontrar en la página del modelo en tfhub.dev . Es posible que TF1/2 no admita la carga/inferencia , el ajuste fino o la creación de modelos según los formatos del modelo.

Compatibilidad del formato TF1 Hub

Operación Modo de compatibilidad TF1/ TF1 en TF2 [1] TF2
Cargando / Inferencia Totalmente compatible ( guía completa de carga de formato TF1 Hub )
m = hub.Module(handle)
outputs = m(inputs)
Se recomienda utilizar hub.load
m = hub.load(handle)
outputs = m.signatures["sig"](inputs)
o hub.KerasLayer
m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs)
Sintonia FINA Totalmente compatible ( guía completa de ajuste fino del formato TF1 Hub )
m = hub.Module(handle,
               trainable=True,
               tags=["train"]*is_training)
outputs = m(inputs)
Nota: los módulos que no necesitan un gráfico de tren separado no tienen una etiqueta de tren.
No soportado
Creación Totalmente compatible (consulte la guía completa de creación de formato TF1 Hub )
Nota: El formato TF1 Hub está orientado a TF1 y solo se admite parcialmente en TF2. Considere la posibilidad de crear un modelo guardado de TF2.
No soportado

Compatibilidad del modelo guardado de TF2

No compatible antes de TF1.15.

Operación Modo de compatibilidad TF1.15/ TF1 en TF2 [1] TF2
Cargando / Inferencia Utilice hub.load
m = hub.load(handle)
outputs = m(inputs)
o hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Totalmente compatible ( guía completa de carga de TF2 SavedModel ). Utilice hub.load
m = hub.load(handle)
outputs = m(inputs)
o hub.KerasLayer
m = hub.KerasLayer(handle)
outputs = m(inputs)
Sintonia FINA Compatible con un hub.KerasLayer utilizado en tf.keras.Model cuando se entrena con Model.fit() o se entrena en un Estimator cuyo model_fn envuelve el modelo según la guía model_fn personalizada .
Nota: hub.KerasLayer no completa las colecciones de gráficos como lo hacían las API antiguas tf.compat.v1.layers o hub.Module.
Totalmente compatible ( guía completa de ajuste fino de TF2 SavedModel ). Utilice hub.load:
m = hub.load(handle)
outputs = m(inputs, training=is_training)
o hub.KerasLayer:
m =  hub.KerasLayer(handle, trainable=True)
outputs = m(inputs)
Creación La API de TF2 tf.saved_model.save() se puede llamar desde el modo de compatibilidad. Totalmente compatible (consulte la guía completa de creación de modelos guardados de TF2 )

[1] "Modo de compatibilidad TF1 en TF2" se refiere al efecto combinado de importar TF2 con import tensorflow.compat.v1 as tf y ejecutar tf.disable_v2_behavior() como se describe en la guía de migración de TensorFlow .