TensorFlow Lite for Microcontrollers

TensorFlow Lite for Microcontrollers est conçu pour exécuter des modèles de machine learning sur des microcontrôleurs et d'autres appareils ne disposant que de quelques kilo-octets de mémoire. L'environnement d'exécution principal occupe 16 Ko sur un processeur ARM Cortex M3 et peut exécuter de nombreux modèles de base. Il ne nécessite la compatibilité avec le système d'exploitation, aucune bibliothèque C ou C++ standard, ni d'allocation de mémoire dynamique.

Pourquoi les microcontrôleurs sont-ils importants ?

Les microcontrôleurs sont généralement de petits appareils informatiques à faible puissance, intégrés dans du matériel nécessitant des calculs de base. En appliquant le machine learning à de minuscules microcontrôleurs, nous pouvons améliorer l'intelligence de milliards d'appareils que nous utilisons au quotidien, y compris les appareils électroménagers et les appareils connectés à l'Internet des objets, sans avoir à recourir à du matériel coûteux ni à des connexions Internet fiables, qui sont souvent soumises à des contraintes de bande passante et de puissance et entraînent une latence élevée. Cela peut également contribuer à protéger la confidentialité, car aucune donnée ne quitte l'appareil. Imaginez des appareils intelligents capables de s'adapter à votre routine quotidienne, des capteurs industriels intelligents qui font la différence entre les problèmes et un fonctionnement normal, ainsi que des jouets magiques qui aident les enfants à apprendre de manière ludique et agréable.

Plates-formes compatibles

TensorFlow Lite for Microcontrollers est écrit en C++ 17 et nécessite une plate-forme 32 bits. Il a été testé de manière approfondie avec de nombreux processeurs basés sur l'architecture Arm Cortex-M Series et a été porté sur d'autres architectures, y compris ESP32. Le framework est disponible sous la forme d'une bibliothèque Arduino. Il peut également générer des projets pour des environnements de développement tels que Mbed. Il est Open Source et peut être inclus dans n'importe quel projet C++ 17.

Les cartes de développement suivantes sont compatibles:

Explorer les exemples

Chaque exemple d'application se trouve sur GitHub et comporte un fichier README.md qui explique comment le déployer sur les plates-formes compatibles. Certains exemples incluent également des tutoriels de bout en bout utilisant une plate-forme spécifique, comme indiqué ci-dessous:

Workflow

Les étapes suivantes sont nécessaires pour déployer et exécuter un modèle TensorFlow sur un microcontrôleur:

  1. Entraîner un modèle :
    • Générez un petit modèle TensorFlow adapté à votre appareil cible et contenant des opérations compatibles.
    • Convertissez un modèle en modèle TensorFlow Lite à l'aide du convertisseur TensorFlow Lite.
    • Convertissez en un tableau d'octets C à l'aide d'outils standards pour le stocker dans une mémoire de programme en lecture seule sur l'appareil.
  2. Exécutez une inférence sur l'appareil à l'aide de la bibliothèque C++ et traitez les résultats.

Limites

TensorFlow Lite for Microcontrollers est conçu pour répondre aux contraintes spécifiques du développement de microcontrôleurs. Si vous travaillez sur des appareils plus puissants (par exemple, un appareil Linux intégré tel que Raspberry Pi), le framework TensorFlow Lite standard peut être plus facile à intégrer.

Les limites suivantes doivent être prises en compte:

  • Compatibilité avec un sous-ensemble limité d'opérations TensorFlow
  • Compatibilité avec un nombre limité d'appareils
  • API C++ de bas niveau nécessitant une gestion manuelle de la mémoire
  • L'entraînement sur l'appareil n'est pas disponible

Étapes suivantes