Descripción general de las conversiones de modelos

Los modelos de aprendizaje automático (AA) que usas con TensorFlow Lite se compilaron y entrenaron originalmente con las bibliotecas y herramientas principales de TensorFlow. Una vez que hayas creado un modelo con TensorFlow Core, puedes convertirlo a un formato de modelo de AA más pequeño y eficiente llamado TensorFlow Lite. En esta sección, se proporciona orientación para convertir tus modelos de TensorFlow al formato de modelo de TensorFlow Lite.

Flujo de trabajo de las conversiones

Convertir los modelos de TensorFlow al formato TensorFlow Lite puede tomar varios caminos, según el contenido de tu modelo de AA. Como primer paso de ese proceso, debes evaluar tu 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 según las operaciones de TensorFlow que usa. Si el modelo usa operaciones fuera del conjunto admitido, tienes la opción de refactorizarlo o usar técnicas de conversión avanzadas.

En el siguiente diagrama, se muestran los pasos de alto nivel para convertir un modelo.

Flujo de trabajo de las conversiones de TFLite

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

En las siguientes secciones, se describe el proceso de evaluación y conversión de modelos para usar con TensorFlow Lite.

Formatos de modelos de entrada

Puedes usar el convertidor con los siguientes formatos de modelo de entrada:

Puedes guardar los modelos de Keras y de funciones concretas como un modelo guardado y convertirlo mediante la ruta recomendada.

Si tienes un modelo de Jax, puedes usar la API de TFLiteConverter.experimental_from_jax para convertirlo al formato de TensorFlow Lite. Ten en cuenta que esta API está sujeta a cambios en el modo experimental.

Evaluación de conversiones

Evaluar tu modelo es un paso importante antes de intentar convertirlo. Cuando lo evalúes, debes determinar si el contenido de tu modelo es compatible con el formato de TensorFlow Lite. También debes determinar si tu modelo es una buena opción para usar en dispositivos móviles y perimetrales en términos del tamaño de los datos que usa el modelo, sus requisitos de procesamiento de hardware, y el tamaño y la complejidad generales del modelo.

En muchos modelos, el conversor 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 la conversión a TensorFlow Lite. Además, algunas operaciones compatibles con TensorFlow Lite tienen requisitos de uso restringidos por motivos de rendimiento. Consulta la guía de compatibilidad con operadores para determinar si debes refactorizar tu modelo para la conversión.

Conversión de modelos

El conversor de TensorFlow Lite toma un modelo de TensorFlow y genera un modelo de TensorFlow Lite (un formato FlatBuffer optimizado que se identifica mediante la extensión de archivo .tflite). Puedes cargar un modelo guardado o convertir directamente un modelo que crees en el código.

El conversor toma 3 opciones o marcas principales que personalizan la conversión de tu modelo:

  1. Las marcas de compatibilidad te permiten especificar si la conversión debe permitir operadores personalizados.
  2. Las marcas de optimización te permiten especificar el tipo de optimización que se aplicará durante la conversión. La técnica de optimización más usada es la cuanitización posterior al entrenamiento.
  3. Las marcas de metadatos te permiten agregar metadatos al modelo convertido, lo que facilita la creación de código de wrapper específico de la plataforma cuando se implementan modelos en dispositivos.

Puedes convertir tu modelo con la API de Python o la herramienta de línea de comandos. Consulta la guía Convierte el modelo de TF para obtener instrucciones paso a paso sobre cómo ejecutar el convertidor en tu modelo.

Por lo general, puedes convertir tu 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. Consulta la sección Entorno de ejecución avanzado de la descripción general de Android para obtener más información.

Conversión avanzada

Si te encuentras con errores mientras ejecutas el convertidor en tu modelo, es probable que tengas un problema de compatibilidad con el operador. No todas las operaciones de TensorFlow son compatibles con TensorFlow Lite. Puedes solucionar estos problemas si refactorizas tu modelo o usas opciones de conversión avanzadas que te permiten crear un modelo de formato de TensorFlow Lite modificado y un entorno de ejecución personalizado para ese modelo.

Próximos pasos