TensorFlow Lite es un conjunto de herramientas que ayuda a los desarrolladores a ejecutar sus modelos en dispositivos incorporados, móviles o de IoT, y les permite implementar el aprendizaje automático integrado en el dispositivo.
Características clave
- Optimizado para el aprendizaje automático integrado en el dispositivo, ya que aborda 5 limitaciones clave: latencia (no hay ida y vuelta con un servidor), privacidad (ningún dato personal sale del dispositivo), conectividad (no es necesaria una conexión a Internet), tamaño (tamaño reducido del modelo y de los objetos binarios) y consumo de energía (inferencia de alta eficiencia sin necesidad de conexiones de red)
- Compatibilidad con múltiples plataformas, lo que incluye dispositivos iOS y Android, Linux incorporado ymicrocontroladores
- Compatibilidad con diversos lenguajes, entre los que se incluyen Java, Swift, Objective-C, C++ y Python
- Alto rendimiento, con aceleración de hardware y optimización de modelos
- Ejemplos de extremo a extremo de tareas comunes de aprendizaje automático, como clasificación de imágenes, detección de objetos, estimación de poses, respuestas a preguntas, clasificación de texto, etc. en múltiples plataformas
Flujo de trabajo del desarrollo
En la siguiente guía, se muestra cada paso del flujo de trabajo y se incluyen vínculos a instrucciones adicionales:
1. Genera un modelo de TensorFlow Lite
Un modelo de TensorFlow Lite se representa en un formato especial, eficiente y portátil conocido como FlatBuffers (identificado con la extensión de archivo .tflite). Tiene varias ventajas en comparación con el formato del modelo de búfer de protocolo de TensorFlow, como un tamaño reducido (huella de código pequeña) y una inferencia más rápida (se accede a los datos directamente sin un paso adicional de análisis o descompresión). Estas características permiten que TensorFlow Lite se ejecute de forma eficiente en dispositivos con recursos de procesamiento y memoria limitados.
De manera opcional, un modelo de TensorFlow Lite puede incluir metadatos que cuenten con una descripción del modelo legible para las personas y datos legibles para máquinas, a fin de generar automáticamente canalizaciones de procesamiento previo y posterior durante la inferencia integrada en el dispositivo. Consulta Agrega metadatos para obtener más detalles.
Puedes generar un modelo de TensorFlow Lite de las siguientes formas:
Usa un modelo de TensorFlow Lite existente: Consulta Ejemplos de TensorFlow Lite para elegir un modelo existente. Los modelos pueden o no contener metadatos.
Crea un modelo de TensorFlow Lite: Usa TensorFlow Lite Model Maker para crear un modelo con tu propio conjunto de datos personalizado. De forma predeterminada, todos los modelos contienen metadatos.
Convierte un modelo de TensorFlow en un modelo de TensorFlow Lite: Usa el Conversor de TensorFlow Lite para convertir un modelo de TensorFlow en un modelo de TensorFlow Lite. Durante la conversión, puedes aplicar optimizaciones como la cuantización para reducir el tamaño y la latencia del modelo con una pérdida de exactitud mínima o nula. De forma predeterminada, ningún modelo contiene metadatos.
2. Ejecuta la inferencia
El término inferencia se refiere al proceso de ejecutar un modelo de TensorFlow Lite de forma integrada en el dispositivo para realizar predicciones basadas en datos de entrada. Puedes ejecutar la inferencia de las siguientes maneras en función del tipo de modelo:
Modelos sin metadatos: Usa la API del Intérprete de TensorFlow Lite.. Es compatible con múltiples plataformas y lenguajes, como Java, Swift, C++, Objective-C y Python.
Modelos con metadatos: Puedes aprovechar las API listas para usar de la Biblioteca de tareas de TensorFlow Lite o crear canalizaciones de inferencia personalizadas con la Biblioteca de compatibilidad de TensorFlow Lite. En dispositivos Android, los usuarios pueden generar automáticamente wrappers de código mediante la Vinculación de modelos de AA de Android Studio o el Generador de código de TensorFlow Lite. Compatible solo con Java (Android). Se está trabajando en la compatibilidad con Swift (iOS) y C++.
En dispositivos iOS y Android, puedes mejorar el rendimiento mediante la aceleración de hardware. En ambas plataformas puedes usar un Delegado de GPU, en Android puedes usar el Delegado de NNAPI (para dispositivos más nuevos) o el Delegado de Hexagon (en dispositivos más antiguos) y en iOS puedes usar el Delegado de Core ML. Para sumar compatibilidad con nuevos aceleradores de hardware, puedes definir tu propio delegado.
Cómo comenzar
Puedes consultar las siguientes guías en función del dispositivo de destino:
iOS y Android: Explora la Guía de inicio rápido para Android y la Guía de inicio rápido para iOS.
Linux incorporado: Explora la Guía de inicio rápido de Python para dispositivos incorporados, como Raspberry Pi y dispositivos Coral con Edge TPU o las instrucciones de compilación de C++ para ARM.
Microcontroladores: Explora la biblioteca TensorFlow Lite para microcontroladores para microcontroladores y DSP con solo unos pocos kilobytes de memoria.
Limitaciones técnicas
No todos los modelos de TensorFlow se pueden convertir en modelos de TensorFlow Lite; consulta la compatibilidad de operadores.
El entrenamiento integrado en el dispositivo no es compatible; sin embargo, se encuentra en nuestra Hoja de ruta.