Formatos del 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 personalizado de TF1 Hub . Su principal uso previsto es en TF1 (o modo de compatibilidad TF1 en TF2) a través de su API hub.Module . Detalles completos de compatibilidad a continuación .
- El formato nativo TF2 SavedModel . Su principal uso previsto es en TF2 a través de las API hub.load y hub.KerasLayer . Detalles completos de compatibilidad a continuación .
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 |
Carga / Inferencia | Totalmente compatible ( guía completa de carga del formato TF1 Hub ) m = hub.Module(handle)
outputs = m(inputs) | Se recomienda utilizar hub.loadm = hub.load(handle)
outputs = m.signatures["sig"](inputs) m = hub.KerasLayer(handle, signature="sig")
outputs = m(inputs) |
Sintonia FINA | Totalmente compatible ( guía completa de ajuste 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 compatible |
Creación | Totalmente compatible (consulte la guía completa de creación del 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 TF2. | No compatible |
Compatibilidad de TF2 SavedModel
No compatible antes de TF1.15.
Operación | Modo de compatibilidad TF1.15/TF1 en TF2 [1] | TF2 |
Carga / Inferencia | Utilice cualquiera de los dos hub.loadm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) | Totalmente compatible ( guía completa de carga de TF2 SavedModel ). Utilice cualquiera de los dos hub.loadm = hub.load(handle)
outputs = m(inputs) m = hub.KerasLayer(handle)
outputs = m(inputs) |
Sintonia FINA | Compatible con hub.KerasLayer usado en tf.keras.Model cuando se entrena con Model.fit() o se entrena en un Estimador cuyo model_fn envuelve el modelo según la guía personalizada model_fn . Nota: hub.KerasLayer no completa colecciones de gráficos como lo hacían las antiguas API tf.compat.v1.layers o hub.Module. | Totalmente compatible ( guía completa de ajuste de TF2 SavedModel ). Utilice hub.load:m = hub.load(handle)
outputs = m(inputs, training=is_training) m = hub.KerasLayer(handle, trainable=True)
outputs = m(inputs) |
Creación | La API TF2 tf.saved_model.save() se puede llamar desde el modo de compatibilidad. | Totalmente compatible (consulte la guía completa de creación de TF2 SavedModel ) |
[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 .