TensorFlow Lite para microcontroladores

TensorFlow Lite para microcontroladores se diseñó para ejecutar modelos de aprendizaje automático en microcontroladores y otros dispositivos usando solo algunos kilobytes de memoria. El entorno de ejecución principal cabe en 16 KB en un procesador ARM Cortex M3 y puede ejecutar varios modelos básicos. No requiere compatibilidad con el sistema operativo, ninguna biblioteca C o C++ estándar ni asignación de memoria dinámica.

Por qué son importantes los microcontroladores

Por lo general, los microcontroladores son dispositivos de procesamiento pequeños y de baja potencia que están integrados en hardware que realiza tareas de cálculo básicas. Con la incorporación del aprendizaje automático en pequeños microcontroladores, podemos potenciar la inteligencia de millones de dispositivos que usamos en nuestra vida, incluidos los electrodomésticos y el Internet de las cosas, sin depender de hardware costoso ni de una conexión a Internet estable, que suele estar condicionada por restricciones de ancho de banda y energía, y que además, genera una latencia alta. Esto puede contribuir también a preservar la privacidad, ya que ningún dato sale del dispositivo. Imagina electrodomésticos inteligentes que se adapten a la rutina diaria, sensores industriales inteligentes que entiendan la diferencia entre los problemas y el funcionamiento normal, y juguetes mágicos que puedan ayudar a los niños a aprender de formas divertidas y agradables.

Plataformas compatibles

TensorFlow Lite para microcontroladores se codificó en C++ 11 y requiere una plataforma de 32 bits. Se probó de manera exhaustiva con muchos procesadores basados en la arquitectura de la serie ARM Cortex-M y se trasladó a otras arquitecturas, como ESP32. El marco de trabajo está disponible como una biblioteca de Arduino. También puede generar proyectos para entornos de desarrollo, como Mbed. Es de código abierto y se puede incluir en cualquier proyecto de C++ 11.

Es compatible con las siguientes placas de desarrollo:

Explora los ejemplos

Cada aplicación de ejemplo se encuentra en GitHub y tiene un archivo README.md que explica cómo puede implementarse en las plataformas compatibles. Algunos ejemplos incluyen también instructivos de extremo a extremo para plataformas específicas, como se indica más abajo:

Flujo de trabajo

Los siguientes pasos son necesarios para implementar y ejecutar un modelo de TensorFlow en un microcontrolador:

  1. Entrena un modelo:
  2. Realiza inferencias en el dispositivo mediante la biblioteca de C++ y procesa los resultados.

Limitaciones

TensorFlow Lite para microcontroladores se diseñó para las limitaciones específicas del desarrollo de microcontroladores. Si trabajas con dispositivos más potentes (por ejemplo, un dispositivo con Linux incorporado como Raspberry Pi), el marco de trabajo estándar de TensorFlow Lite podría ser más fácil de integrar.

Se deben tener en cuenta las siguientes limitaciones:

  • Compatibilidad con un subconjunto limitado de operaciones de TensorFlow
  • Compatibilidad con un conjunto limitado de dispositivos
  • API de C++ de bajo nivel que requiere administración manual de la memoria
  • No compatible con el entrenamiento en dispositivos

Próximos pasos