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. Le composant d'exécution principal tient sur 16 Ko sur un processeur Arm Cortex M3 et peut exécuter de nombreux modèles de base. Aucune compatibilité avec le système d'exploitation n'est nécessaire. Il ne nécessite, en outre, 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 qui sont intégrés dans du matériel qui nécessite des calculs de base. Le fait d'exécuter le machine learning sur de très petits microcontrôleurs nous permet d'augmenter l'intelligence de milliards d'appareils utilisés au quotidien, comme des appareils électroménagers et des appareils IoT, sans être tributaires de matériel Internet onéreux ou de la fiabilité des connexions, deux facteurs qui sont souvent soumis à des contraintes de bande passante et de puissance, et qui entraînent une latence élevée. Cela contribue également à protéger la vie privée, dans la mesure où toutes les données restent sur l'appareil. Imaginez des appareils électroménagers connectés capables de s'adapter à vos habitudes quotidiennes, des capteurs industriels intelligents capables de faire la différence entre un problème et un fonctionnement normal, ou encore des jouets magiques qui aident les enfants à apprendre tout en s'amusant.

Plates-formes compatibles

TensorFlow Lite for Microcontrollers est écrit en langage C++ 11 et nécessite une plate-forme 32 bits. Cette solution a été testée de manière approfondie avec de nombreux processeurs basés sur l'architecture Arm Cortex-M Series et a été portée sur d'autres architectures, dont 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. Ce framework Open Source peut, en outre, être inclus dans n'importe quel projet C++ 11.

Les cartes de développement suivantes sont acceptées :

Parcourir 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 comprennent également des tutoriels de bout en bout utilisant une plate-forme spécifique, comme indiqué ci-dessous :

Workflow

Les étapes suivantes sont requises 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 au format TensorFlow Lite à l'aide du convertisseur TensorFlow Lite.
    • Effectuez une conversion en tableau d'octets C à l'aide d'outils standards en vue du stockage 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 utilisez des appareils plus puissants (un appareil Linux intégré tel que le Raspberry Pi, par exemple), le framework TensorFlow Lite standard peut s'avérer plus facile à intégrer.

Vous devez tenir compte des limites suivantes :

  • 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