Descripción general de la conversión de modelos

Los modelos de aprendizaje automático (ML) que usa con TensorFlow Lite se crearon y entrenaron originalmente con las bibliotecas y herramientas principales de TensorFlow. Una vez que haya creado un modelo con TensorFlow Core, puede convertirlo a un formato de modelo ML más pequeño y eficiente llamado modelo TensorFlow Lite. Esta sección brinda orientación para convertir sus modelos de TensorFlow al formato de modelo de TensorFlow Lite.

Flujo de trabajo de conversión

La conversión de modelos TensorFlow al formato TensorFlow Lite puede tomar varios caminos según el contenido de su modelo ML. Como primer paso de ese proceso, debe evaluar su modelo para determinar si se puede convertir directamente. Esta evaluación determina si el contenido del modelo es compatible con los entornos de tiempo de ejecución estándar de TensorFlow Lite en función de las operaciones de TensorFlow que utiliza. Si su modelo usa operaciones fuera del conjunto compatible, tiene la opción de refactorizar su modelo o usar técnicas de conversión avanzadas.

El siguiente diagrama muestra los pasos de alto nivel para convertir un modelo.

Flujo de trabajo de conversión de TFLite

Figura 1. Flujo de trabajo de conversión de TensorFlow Lite.

Las siguientes secciones describen el proceso de evaluación y conversión de modelos para su uso con TensorFlow Lite.

Formatos de modelo de entrada

Puede utilizar el convertidor con los siguientes formatos de modelo de entrada:

Puede guardar tanto Keras como modelos de funciones concretas como un modelo guardado y convertirlos utilizando la ruta recomendada.

Si tiene un modelo Jax, puede usar la API TFLiteConverter.experimental_from_jax para convertirlo al formato TensorFlow Lite. Tenga en cuenta que esta API está sujeta a cambios mientras se encuentra en modo experimental.

Evaluación de conversión

Evaluar su modelo es un paso importante antes de intentar convertirlo. Al evaluar, desea determinar si el contenido de su modelo es compatible con el formato TensorFlow Lite. También debe determinar si su modelo es adecuado para su uso en dispositivos móviles y perimetrales en términos del tamaño de los datos que utiliza el modelo, sus requisitos de procesamiento de hardware y el tamaño y la complejidad generales del modelo.

Para muchos modelos, el convertidor debería funcionar de inmediato. Sin embargo, la biblioteca de operadores integrada de TensorFlow Lite admite un subconjunto de operadores principales de TensorFlow, lo que significa que algunos modelos pueden necesitar pasos adicionales antes de convertirse a TensorFlow Lite. Además, algunas operaciones que son compatibles con TensorFlow Lite tienen requisitos de uso restringido por motivos de rendimiento. Consulte la guía de compatibilidad del operador para determinar si su modelo debe refactorizarse para la conversión.

Conversión de modelo

El convertidor TensorFlow Lite toma un modelo TensorFlow y genera un modelo TensorFlow Lite (un formato FlatBuffer optimizado identificado por la extensión de archivo .tflite ). Puede cargar un modelo guardado o convertir directamente un modelo que cree en código.

El convertidor toma 3 banderas principales (u opciones) que personalizan la conversión para su modelo:

  1. Los indicadores de compatibilidad le permiten especificar si la conversión debe permitir operadores personalizados.
  2. Los indicadores de optimización le permiten especificar el tipo de optimización que se aplicará durante la conversión. La técnica de optimización más utilizada es la cuantificación posterior al entrenamiento .
  3. Los indicadores de metadatos le permiten agregar metadatos al modelo convertido, lo que facilita la creación de código contenedor específico de la plataforma al implementar modelos en dispositivos.

Puede convertir su modelo utilizando la API de Python o la herramienta de línea de comandos. Consulte la guía del modelo Convert TF para obtener instrucciones paso a paso sobre cómo ejecutar el convertidor en su modelo.

Por lo general, convertiría su modelo para el entorno de tiempo de ejecución estándar de TensorFlow Lite o el entorno de tiempo de ejecución de los servicios de Google Play para TensorFlow Lite (Beta). Algunos casos de uso avanzado requieren la personalización del entorno de tiempo de ejecución del modelo, lo que requiere pasos adicionales en el proceso de conversión. Consulte la sección de entorno de tiempo de ejecución avanzado de la descripción general de Android para obtener más orientación.

Conversión avanzada

Si se encuentra con errores mientras ejecuta el convertidor en su modelo, lo más probable es que tenga un problema de compatibilidad con el operador. No todas las operaciones de TensorFlow son compatibles con TensorFlow Lite. Puede solucionar estos problemas refactorizando su modelo o usando opciones de conversión avanzadas que le permiten crear un modelo de formato TensorFlow Lite modificado y un entorno de tiempo de ejecución personalizado para ese modelo.

Próximos pasos