¿Qué es TensorFlow Lite y cómo es un marco de aprendizaje profundo?
Es posible que se haya encontrado con TensorFlow Lite mientras pasaba por las placas de desarrollo de Edge AI o los proyectos de aceleración de AI.
TensorFlow Lite es un marco de paquetes de software que permite el entrenamiento de ML localmente en el hardware. Este procesamiento e informática en el dispositivo permite a los desarrolladores ejecutar sus modelos en hardware específico. El hardware incluye placas de desarrollo, módulos de hardware, dispositivos integrados y de IoT.
Descripción general del marco de trabajo TensorFlow Lite
TensorFlow es un término popular en el aprendizaje profundo, ya que muchos desarrolladores de ML usan este marco para varios casos de uso. Proporciona la facilidad de implementar inferencias y modelos de aprendizaje automático para aplicaciones de inteligencia artificial.
Pero TensorFlow Lite es un marco de aprendizaje profundo para la inferencia local, específicamente para el hardware computacional bajo. Permite el aprendizaje automático en el dispositivo al ayudar a los desarrolladores a ejecutar sus modelos en dispositivos de IoT y hardware compatibles.
Un desarrollador debe seleccionar un modelo adecuado según el caso de uso. El marco también ofrece la opción de volver a entrenar el modelo existente en un conjunto de datos personalizado. Como el modelo de búfer de protocolo de TensorFlow viene con un tamaño grande y requiere potencia computacional avanzada, permite la conversión del modelo de TensorFlow al modelo de TensorFlow Lite.
La personalización de los parámetros de optimización y cuantificación permite reducir el tamaño y la latencia del modelo.
Además de los beneficios de latencia y tamaño de TensorFlow Lite, el marco proporciona la seguridad de los datos a medida que el entrenamiento ocurre localmente en el dispositivo. Además, no es necesaria la conexión a Internet. Por lo tanto, el despliegue de aplicaciones no se limita a áreas específicas con conectividad.
En última instancia, estos factores reducen la carga de consumo de energía en el dispositivo al eliminar el factor de conectividad y aumentar la eficiencia de la inferencia de aprendizaje profundo.
Los modelos del marco TensorFlow Lite existen en un formato multiplataforma conocido como FlatBuffers. Es una biblioteca de serialización que almacena datos jerárquicos en un búfer binario plano para que el acceso directo sea posible sin desempaquetar. También puede observar la extensión ".tflite" para los modelos de TensorFlow Lite. Esta técnica de representación permite optimizaciones en los cálculos y reduce los requisitos de memoria. Por lo tanto, es mucho mejor que los modelos de TensorFlow.
TinyML en TensorFlow Lite Micro
Como TensorFlow Lite es compatible con varias plataformas para aplicaciones Edge AI, era necesaria la necesidad de una mayor convergencia de la biblioteca. Por lo tanto, la organización creó una biblioteca de subconjuntos de TensorFlow Lite, conocida como TensorFlow Lite Micro. TensorFlow Lite Micro ejecuta específicamente modelos de aprendizaje automático en microcontroladores localmente con requisitos mínimos de memoria de unos pocos kilobytes.
El tiempo de ejecución principal del procedimiento se integra con 16 KB en un Arm Cortex M3 y puede funcionar en varios modelos. El marco no requiere soporte de sistema operativo adicional u otras bibliotecas de lenguaje de alto nivel como dependencias para ejecutar la inferencia en el dispositivo.
El desarrollo de TensorFlow Lite Micro se basa en C ++ 11, que necesita una arquitectura de 32 bits para su compatibilidad. Hablando más sobre las arquitecturas, la biblioteca funciona bien en una sólida gama de procesadores basados en la arquitectura Arm Cortex-M Series para otras arquitecturas de diseño como ESP32 .
Flujo de trabajo para casos de uso de TensorFlow Lite Micro
El proceso de entrenamiento de la red neuronal requiere un alto hardware computacional. Por lo tanto, se entrena en el modelo general de TensorFlow . Sin embargo, la capacitación solo es necesaria si un conjunto de datos personalizado se ajusta a un modelo de aprendizaje profundo, mientras que los modelos previamente entrenados en el marco también se pueden usar para las aplicaciones.
Suponiendo un caso de uso personalizado con el conjunto de datos específico de la aplicación, el usuario entrena el modelo en el marco de trabajo general de TensorFlow con alta capacidad de procesamiento y arquitectura. Una vez finalizada la formación, la evaluación del modelo mediante técnicas de prueba verifica la precisión y fiabilidad del modelo. Además, el proceso es seguido por la conversión del modelo de TensorFlow al modelo de TensorFlow Lite compatible con hardware en el formato .tflite.
El formato .tflite es un archivo de búfer plano común al marco TensorFlow Lite y al hardware compatible. El modelo se puede utilizar además para el entrenamiento de inferencia sobre los datos en tiempo real recibidos en el modelo. El entrenamiento de inferencia optimizó los modelos para casos de uso sólidos. Por lo tanto, la opción del entrenamiento de inferencia es crucial para las aplicaciones de inteligencia artificial de borde .
La mayor parte del firmware del microcontrolador no es compatible con el sistema de archivos nativo para incrustar directamente el formato de búfer plano del modelo TensorFlow Lite. Por lo tanto, la conversión del archivo .tflite es necesaria a un formato de estructura de matriz, que es compatible con los microcontroladores.
Incluir el programa en la matriz de C seguido de la compilación normal es una técnica fácil para dicha conversión. El formato resultante actúa como un archivo fuente y consiste en una matriz de caracteres compatible con los microcontroladores.
Dispositivos compatibles con TensorFlow Lite Micro
TensorFlow Lite es adecuado para dispositivos potentes, pero tiene el inconveniente de una mayor carga de trabajo en el procesador. Aunque TensorFlow Lite Micro tiene archivos de tamaño pequeño propensos a desajustarse, la optimización del tamaño de archivo que se ajusta a la memoria puede mejorar significativamente la salida para hardware de bajo consumo y bajo procesamiento, como los microcontroladores.
Aquí está la lista de placas de desarrollo de la documentación oficial de TensorFlow que es compatible con TensorFlow Lite Micro:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kit de descubrimiento STM32F746
- Adafruit EdgeBadge
- Kit Adafruit TensorFlow Lite para microcontroladores
- Zona de juegos del circuito de Adafruit Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminal Wio: ATSAMD51
- Placa de desarrollo Himax WE-I Plus EVB Endpoint AI
TensorFlow Lite Micro también está disponible como una biblioteca Arduino para soporte ampliado para microcontroladores. También puede construir proyectos para entornos de desarrollo de hardware similares a Mbed.
TensorFlow Lite ofrece mucho
El marco de aprendizaje profundo de TensorFlow Lite abre las posibilidades a una serie de aplicaciones de inteligencia artificial de vanguardia. Como el marco es de código abierto para los entusiastas de la inteligencia artificial, el apoyo de la comunidad lo hace aún más popular para los casos de uso de aprendizaje automático. La plataforma general de TensorFlow Lite mejora el entorno para el crecimiento de aplicaciones de borde para dispositivos integrados y de IoT.
Además, hay varios ejemplos para principiantes que les ayudarán con los casos prácticos de uso del marco. Algunos de estos ejemplos incluyen la detección de personas en función de los datos recopilados por el sensor de imagen de la placa de desarrollo y el programa estándar hello world para todas las placas de desarrollo. Los ejemplos también incluyen aplicaciones como detección de gestos y reconocimiento de voz para placas de desarrollo específicas.
Para obtener más información sobre TensorFlow Lite y TensorFlow Lite Micro , puede visitar la página de documentación oficial de la organización. Hay muchas secciones conceptuales y tutoriales para una mejor comprensión del marco.