Path: blob/master/site/es-419/lite/models/convert/convert_models.md
25118 views
Convertir modelos TensorFlow
Esta página describe cómo convertir un modelo TensorFlow en un modelo TensorFlow Lite (un formato optimizado FlatBuffer identificado por la extensión de archivo .tflite
) usando el conversor de TensorFlow Lite.
Nota: Esta guía asume que usted ha instalado TensorFlow 2.x y entrenado modelos en TensorFlow 2.x. Si su modelo está entrenado en TensorFlow 1.x, considere migrar a TensorFlow 2.x. Para identificar la versión de TensorFlow instalada, ejecute print(tf.__version__)
.
Flujo de trabajo de conversión
El diagrama siguiente ilustra el flujo de trabajo de alto nivel para convertir su modelo:
Figura 1. Flujo de trabajo del convertidor.
Puede convertir su modelo usando una de las siguientes opciones:
API de Python (recomendada): Esto le permite integrar la conversión en su flujo de desarrollo, aplicar optimizaciones, añadir metadatos y muchas otras tareas que simplifican el proceso de conversión.
Línea de comandos: Sólo admite la conversión básica de modelos.
Nota: En caso de que encuentre algún problema durante la conversión del modelo, cree un GitHub issue.
API de Python
Código ayudante: Para obtener más información sobre la API del conversor TensorFlow Lite, ejecute print(help(tf.lite.TFLiteConverter))
.
Convierta un modelo TensorFlow usando tf.lite.TFLiteConverter
. Un modelo TensorFlow se almacena usando el formato SavedModel y se genera bien usando las APIs de alto nivel tf.keras.*
(un modelo Keras) o las APIs de bajo nivel tf.*
(a partir de las cuales genera funciones concretas). Resultan las tres opciones siguientes (encontrará ejemplos en las próximas secciones):
tf.lite.TFLiteConverter.from_saved_model()
(recomendado): Convierte un SavedModel.tf.lite.TFLiteConverter.from_keras_model()
: Convierte un modelo Keras.tf.lite.TFLiteConverter.from_concrete_functions()
: Convierte funciones concretas.
Convert a SavedModel (recomendado)
El siguiente ejemplo muestra cómo convertir un SavedModel en un modelo TensorFlow Lite.
Convertir un modelo Keras
El siguiente ejemplo muestra cómo convertir un modelo Keras en un modelo TensorFlow Lite.
Convertir funciones concretas
El siguiente ejemplo muestra cómo convertir funciones concretas en un modelo TensorFlow Lite.
Otras características
Aplique optimizaciones. Una optimización comúnmente usada es la cuantización posterior al entrenamiento, que puede reducir aún más la latencia y el tamaño de su modelo con una pérdida mínima de precisión.
Añada metadatos, lo que facilita la creación de código contenedor específico de la plataforma al implementar modelos en dispositivos.
Errores de conversión
A continuación se indican los errores de conversión más comunes y sus soluciones:
Error:
Some ops are not supported by the native TFLite runtime, you can enable TF kernels fallback using TF Select. See instructions: https://www.tensorflow.org/lite/guide/ops_select. TF Select ops: ..., .., ...
Solución: El error se produce porque su modelo tiene ops TF sin la correspondiente implementación en TFLite. Puede resolverlo usando la op TF en el modelo TFLite (recomendado). Si desea generar un modelo sólo con ops TFLite, puede añadir una solicitud para la op TFLite que falta en Github issue #21526 (deje un comentario si su solicitud no se ha mencionado ya) o crear usted mismo la op TFLite.
Error:
.. is neither a custom op nor a flex op
Solución: Si esta op TF:
Está admitida en TF: El error se produce porque falta la op TF en la allowlist (una lista exhaustiva de las ops TF admitidas por TFLite). Puede resolverlo de la siguiente manera:
No está admitida en TF: El error se produce porque TFLite desconoce el operario de TF personalizado definido por usted. Puede resolverlo de la siguiente manera:
Crear la op TFLite y ejecutar la inferencia vinculándola al runtime TFLite.
Herramienta de línea de comandos
Nota: Se recomienda especialmente usar en su lugar, si es posible, la API de Python indicada anteriormente.
Si ha instalado TensorFlow 2.x desde pip, use el comando tflite_convert
. Para ver todos los Indicadores disponibles, use el siguiente comando:
Si usted tiene la fuente TensorFlow 2.x descargada y desea ejecutar el convertidor desde esa fuente sin compilar e instalar el paquete, puede reemplazar 'tflite_convert
' por 'bazel run tensorflow/lite/python:tflite_convert --
' en el comando.
Convertir un SavedModel
Conversión de un modelo Keras H5
Siguientes pasos
Usar el intérprete TensorFlow Lite para ejecutar la inferencia en un dispositivo cliente (por ejemplo, móvil, integrado).