LiteRT pour les microcontrôleurs

LiteRT for Microcontrollers est conçu pour exécuter des modèles de machine learning sur des microcontrôleurs et d'autres appareils avec seulement quelques kilo-octets de mémoire. La l'environnement d'exécution principal ne prend que 16 Ko sur un appareil Arm Cortex M3 et peut exécuter de nombreuses des modèles de ML. Il ne nécessite aucune compatibilité avec le système d'exploitation, ni aucune norme C ou C++ ou l'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. En recourant au machine learning de minuscules microcontrôleurs, nous pouvons renforcer l'intelligence de milliards de les appareils que nous utilisons dans notre vie, y compris les appareils électroménagers et Appareils Things, sans matériel coûteux ni Internet fiable qui est souvent soumise à des contraintes de bande passante et d'alimentation entraîne une latence élevée. Cela peut également contribuer à préserver la confidentialité, puisqu'aucune donnée quitte l'appareil. Imaginez des appareils électroménagers intelligents capables de s'adapter à votre des capteurs industriels intelligents et de routine qui comprennent la différence entre les problèmes et le fonctionnement normal, et des jouets magiques pour apprendre en s'amusant et de manière agréable.

Plates-formes compatibles

LiteRT for Microcontrollers est écrit en C++ 17 et nécessite Google Cloud. Il a été testé de manière approfondie avec de nombreux processeurs basés sur la Série Arm Cortex-M et a été porté sur d'autres architectures, y compris ESP32 La est disponible sous forme de bibliothèque Arduino. Il peut également générer des projets tels que Mbed. Il s'agit d'un outil Open Source qui peut être inclus n'importe quel projet C++ 17.

Les cartes de développement suivantes sont prises en charge:

Explorer les exemples

Chaque exemple d'application est GitHub et contient un fichier README.md qui explique comment le déployer sur plates-formes. Certains exemples incluent également des tutoriels de bout en bout à l'aide d'une méthode plate-forme, comme indiqué ci-dessous:

Workflow

Pour déployer et exécuter un modèle TensorFlow sur un microcontrôleur:

  1. Entraîner un modèle: <ph type="x-smartling-placeholder">
      </ph>
    • Générez un petit modèle TensorFlow adapté à votre appareil cible et contient des opérations compatibles.
    • Convertissez en modèle LiteRT à l'aide de la Convertisseur LiteRT :
    • Convertir en tableau d'octets C avec outils standards pour les stocker de la mémoire du programme en lecture seule sur l'appareil.
  2. Exécuter une inférence sur l'appareil à l'aide de la bibliothèque C++ et du processus les résultats.

Limites

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

Les limites suivantes doivent être prises en compte:

  • Compatibilité avec un sous-ensemble limité de 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