TensorFlow Lite para microcontroladores

TensorFlow Lite para microcontroladores se diseñó para ejecutar modelos de aprendizaje automático en microcontroladores y otros dispositivos con solo unos kilobytes de memoria. El entorno de ejecución principal solo cabe en 16 KB en un procesador ARM Cortex M3 y puede ejecutar muchos 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 incorporados en hardware que requiere un procesamiento básico. Si llevamos el aprendizaje automático a pequeños microcontroladores, podemos potenciar la inteligencia de miles de millones de dispositivos que usamos en nuestra vida, incluidos los electrodomésticos y los dispositivos de Internet de las cosas, sin depender de hardware costoso ni de conexiones a Internet confiables, que a menudo están sujetas a restricciones de ancho de banda y energía y genera una alta latencia. Esto también puede ayudar a preservar la privacidad, ya que ningún dato sale del dispositivo. Imagina electrodomésticos inteligentes que puedan adaptarse a tu rutina diaria, sensores industriales inteligentes que comprendan 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 encantadoras.

Plataformas compatibles

TensorFlow Lite para microcontroladores está escrito en C++ 17 y requiere una plataforma de 32 bits. Se probó ampliamente con muchos procesadores basados en la arquitectura de la serie ARM Cortex-M y se trasladó a otras arquitecturas, incluido ESP32. El framework 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++ 17.

Se admiten las siguientes placas de desarrollo:

Explora los ejemplos

Cada aplicación de ejemplo está en GitHub y tiene un archivo README.md que explica cómo se puede implementar en sus plataformas compatibles. Algunos ejemplos también tienen instructivos de extremo a extremo para una plataforma específica, como se indica a continuación:

Flujo de trabajo

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

  1. Entrena un modelo:
  2. Ejecuta la inferencia en el dispositivo con 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 en dispositivos más potentes (por ejemplo, un dispositivo Linux incorporado como Raspberry Pi), el framework 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 se admite el entrenamiento en el dispositivo

Próximos pasos