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 TF1 Hub personalizado. Su principal uso previsto es en TF1 (o modo de compatibilidad TF1 en TF2) a través de su hub.Module API . Detalles completos de compatibilidad a continuación .
- El formato nativo de modelo guardado de TF2 . 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 |
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 .