En un principio, los modelos de aprendizaje automático (AA) que usas con LiteRT se compiló y entrenó con las bibliotecas y herramientas principales de TensorFlow. Una vez que hayas creado un modelo con TensorFlow Core, puedes convertirlo a un modelo de AA eficiente llamado modelo LiteRT. En esta sección, se proporciona orientación para convertir tus modelos de TensorFlow al formato LiteRT.
Flujo de trabajo de conversiones
Para convertir los modelos de TensorFlow al formato LiteRT, puedes seguir varios pasos según el contenido de tu modelo de AA. El 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 entornos de ejecución estándar LiteRT basados en las operaciones de TensorFlow que usa. Si tu modelo usa operaciones fuera del conjunto admitido, tienes la opción de refactorizar tu modelo o usar técnicas de conversión avanzadas.
En el siguiente diagrama, se muestran los pasos de alto nivel para convertir un modelo.
Figura 1: Flujo de trabajo de conversiones de LiteRT.
En las siguientes secciones, se describe el proceso de evaluación y conversión de modelos para usar con LiteRT.
Formatos de modelo de entrada
Puedes usar el conversor con los siguientes formatos de modelo de entrada:
- SavedModel (recomendado): Es un modelo de TensorFlow guardado como un conjunto de archivos en el disco.
- Modelo de Keras: Un modelo creado con la API de Keras de alto nivel.
- Formato Keras H5: Una alternativa ligera al formato de modelo guardado compatible con la API de Keras.
- Modelos compilados a partir de funciones concretas: Modelo creado con la API de TensorFlow de bajo nivel.
Puedes guardar los modelos de función concreta y Keras como un modelo guardado. y convertir usando la ruta recomendada.
Si tienes un modelo Jax, puedes usar TFLiteConverter.experimental_from_jax
.
para convertirlo al formato LiteRT. Ten en cuenta que esta API está sujeta
para cambiar en el modo experimental.
Evaluación de conversiones
Evaluar el modelo es un paso importante antes de intentar convertirlo. Al evaluar, deseas determinar si los contenidos de tu modelo son compatibles con el Formato LiteRT. También debes determinar si tu modelo es una buena opción en dispositivos móviles y perimetrales, según el tamaño de los datos que usa el modelo los requisitos de procesamiento de hardware y el tamaño general del modelo y complejidad.
En muchos modelos, el conversor debería funcionar de inmediato. Sin embargo, La biblioteca de operador LiteRT admite un subconjunto de Operadores principales de TensorFlow, lo que significa que algunos modelos pueden necesitar recursos pasos antes de convertirlo a LiteRT. Además, algunas operaciones que son compatibles con LiteRT tienen de uso restringido por motivos de rendimiento. Consulta la guía de compatibilidad con operadores para determinar si es necesario refactorizar tu modelo para la conversión.
Conversión de modelos
El conversor LiteRT toma un modelo de TensorFlow y genera un
LiteRT (una base de datos
FlatBuffer identificado por el
.tflite
). Puedes cargar
un modelo guardado o convertir directamente un modelo creado en el código.
El que genera el conversor usa 3 opciones principales (o marcas) que personalizan la conversión. para tu modelo:
- Las marcas de compatibilidad te permiten especificar si la conversión debería permitir operadores personalizados.
- Las marcas 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 usada cuantización posterior al entrenamiento.
- Las marcas de metadatos te permiten agregar metadatos al modelo convertido lo que facilita la creación de código del wrapper específico para cada plataforma cuando se implementa modelos en dispositivos.
Puedes convertir tu modelo con la API de Python o la herramienta Línea de comandos. Consulta la Guía para convertir modelos de TF una guía paso a paso instrucciones para ejecutar el conversor en tu modelo.
Por lo general, los convertirías al modelo LiteRT estándar. entorno de ejecución o Entorno de ejecución de los Servicios de Google Play para LiteRT (beta). Algunos casos de uso avanzados requieren personalización del entorno de ejecución del modelo, que requieren pasos adicionales en en el proceso de conversión. Consulta la sección Entorno de ejecución avanzado de Android para obtener más orientación.
Conversión avanzada
Si encuentras errores mientras ejecutas el conversor en tu modelo, es probable que tengas y el problema de compatibilidad del operador. No todas las operaciones de TensorFlow compatibles con TensorFlow Lite. Puedes solucionar estos problemas refactorizando tu modelo o usando opciones avanzadas de conversión que permiten crear un LiteRT modificado de Terraform y un entorno de ejecución personalizado para ese modelo.
- Consulta la Descripción general de la compatibilidad de modelos. para obtener más información sobre la compatibilidad de los modelos de TensorFlow y LiteRT y consideraciones clave.
- Los temas de la Descripción general de la compatibilidad de modelos abarcan técnicas avanzadas para lo siguiente: refactorizar tu modelo, como los operadores de selección .
- Para ver la lista completa de operaciones y limitaciones, consulta Página de operaciones de LiteRT.
Próximos pasos
- Consulta la guía sobre cómo convertir modelos de TF para comenzar rápidamente. convertir tu modelo.
- Consulta la descripción general de la optimización para orientación sobre cómo optimizar tu modelo convertido con técnicas como la cuantización posterior al entrenamiento.
- Consulta la descripción general sobre cómo agregar metadatos para aprender a agregar metadatos a tus modelos. Los metadatos también proporcionan una descripción de tu modelo para otros usos como información que pueden aprovechar los generadores de códigos.