TensorFlow Lite es un conjunto de herramientas que habilita el aprendizaje automático en el dispositivo ayudando a los desarrolladores a ejecutar sus modelos en dispositivos móviles, incorporados y perimetrales.
Funciones clave
- Optimizada para el aprendizaje automático en el dispositivo, ya que aborda 5 restricciones clave: latencia (no hay ida y vuelta a un servidor), privacidad (sin datos personales salen del dispositivo), conectividad (no se requiere conectividad a Internet), tamaño (modelo reducido y tamaño binario) y consumo de energía (inferencia eficiente y falta de conexiones de red).
- Compatibilidad con varias plataformas, lo que incluye dispositivos iOS y Android, Linux incorporado y microcontroladores
- Compatibilidad con diversos lenguajes, como Java, Swift, Objective-C, C++ y Python.
- Alto rendimiento, con aceleración de hardware y optimización de modelos
Flujo de trabajo de desarrollo
En la siguiente guía, se explica cada paso del flujo de trabajo y se proporcionan 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 por la extensión de archivo .tflite). Esto brinda varias ventajas en comparación con el formato del modelo del 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 tener que realizar un paso adicional de análisis y desempaquetado), lo que permite que TensorFlow Lite se ejecute de manera eficiente en dispositivos con recursos limitados de procesamiento y memoria.
De manera opcional, un modelo de TensorFlow Lite puede incluir metadatos que tengan una descripción del modelo legible por humanos y datos legibles para la máquina para la generación automática de 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 maneras:
Usa un modelo de TensorFlow Lite existente: Consulta Ejemplos de TensorFlow Lite para elegir un modelo existente. Los modelos pueden o no contener metadatos.
Convierte un modelo de TensorFlow en un modelo de TensorFlow Lite: Usa el convertidor 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, ninguno de los modelos contiene metadatos.
2. Inferencia de ejecución
El término inferencia se refiere al proceso de ejecutar un modelo de TensorFlow Lite en el dispositivo para hacer 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 de Intérprete de TensorFlow Lite. Es compatible con varias plataformas y lenguajes, como Java, Swift, C++, Objective-C y Python.
Modelos con metadatos: Puedes compilar canalizaciones de inferencia personalizadas con la biblioteca de compatibilidad de TensorFlow Lite. En los dispositivos Android, los usuarios pueden generar automáticamente wrappers de código con la vinculación de modelos de AA de Android Studio o el generador de código de TensorFlow Lite. Es compatible solo con Java (Android), mientras que Swift (iOS) y C++ está en desarrollo.
En dispositivos iOS y Android, puedes mejorar el rendimiento mediante la aceleración de hardware. En ambas plataformas, puedes usar un delegado de GPU y, en iOS, puedes usar el delegado de Core ML. Para agregar compatibilidad con aceleradores de hardware nuevos, puedes definir tu propio delegado.
Comenzar
Puedes consultar las siguientes guías según el 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 Corral con Edge TPU, o instrucciones de compilación de C++ para ARM.
Microcontroladores: Explora la biblioteca TensorFlow Lite para microcontroladores para microcontroladores y DSP que contienen solo unos pocos kilobytes de memoria.
Limitaciones técnicas
- Todos los modelos de TensorFlow no se pueden convertir en modelos de TensorFlow Lite, consulta Compatibilidad con operadores.