Formatos de modelo TF Hub
TF Hub ofrece piezas de modelo reutilizables que se pueden cargar, construir y posiblemente volver a capacitar en un programa de TensorFlow. Estos vienen en dos formatos diferentes:
- El formato TF1 Hub personalizado. Su uso previsto principal 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 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 la carga / inferencia , el ajuste fino o la creación de modelos no sean compatibles con TF1 / 2 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.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 del concentrador TF1 ) 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 por separado no tienen una etiqueta de tren. | No soportado |
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 soportado |
Compatibilidad de TF2 SavedModel
No admitido antes de TF1.15.
Operación | Modo de compatibilidad TF1.15 / TF1 en TF2 [1] | TF2 |
Carga / 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 del modelo guardado TF2 ). 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 en un Estimador cuyo model_fn envuelve el modelo según la guía personalizada model_fn . Nota: hub.KerasLayer no completa las 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 fino del modelo guardado TF2 ). 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 TF2 tf.saved_model.save () se puede llamar desde el modo compat. | 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 .