Descripción general de la conversión de modelos

Los modelos de aprendizaje automático (ML) que utiliza con TensorFlow Lite se crean y entrenan originalmente utilizando bibliotecas y herramientas principales de TensorFlow. Una vez que haya creado un modelo con el núcleo de TensorFlow, puede convertirlo a un formato de modelo ML más pequeño y eficiente llamado modelo TensorFlow Lite. Esta sección proporciona 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 de TensorFlow al formato TensorFlow Lite puede tomar algunas rutas según el contenido de su modelo de 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 ejecución estándar de TensorFlow Lite en función de las operaciones de TensorFlow que utiliza. Si su modelo utiliza operaciones fuera del conjunto admitido, tiene la opción de refactorizar su modelo o utilizar 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 del modelo de entrada

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

Puede guardar los modelos de funciones concretas y de Keras como SavedModel 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 de borde 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 compatibles con TensorFlow Lite tienen requisitos de uso restringidos por motivos de rendimiento. Consulte la guía de compatibilidad del operador para determinar si su modelo necesita ser refactorizado 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 SavedModel o convertir directamente un modelo que cree en código.

El convertidor toma 3 indicadores (u opciones) principales 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 cuantizació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.

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

Conversión avanzada

Si encuentra errores al ejecutar el convertidor en su modelo, lo más probable es que tenga un problema de compatibilidad del operador. TensorFlow Lite no admite todas las operaciones de TensorFlow. Puede solucionar estos problemas refactorizando su modelo o utilizando opciones de conversión avanzadas que le permitan crear un modelo de formato TensorFlow Lite modificado y un entorno de ejecución personalizado para ese modelo.

Próximos pasos