TensorFlow Lite für Mikrocontroller

TensorFlow Lite für Mikrocontroller wurde entwickelt, um Machine-Learning-Modelle auf Mikrocontrollern und anderen Geräten mit nur wenigen Kilobyte Arbeitsspeicher auszuführen. Die Kernlaufzeit passt gerade mal in 16 KB auf einen Arm Cortex M3 und kann viele Basismodelle ausführen. Es erfordert keine Betriebssystemunterstützung, keine Standard-C- oder C++-Bibliotheken oder dynamische Speicherzuweisung.

Warum Mikrocontroller wichtig sind

Mikrocontroller sind in der Regel kleine Rechengeräte mit geringer Leistung, die in Hardware eingebettet sind, die eine grundlegende Berechnung erfordert. Indem wir maschinelles Lernen auf winzige Mikrocontroller übertragen, können wir die Intelligenz von Milliarden von Geräten steigern, die wir in unserem Leben verwenden, einschließlich Haushaltsgeräten und Geräten für das Internet der Dinge, ohne auf teure Hardware oder zuverlässige Internetverbindungen angewiesen zu sein, die oft Bandbreite und Leistungseinschränkungen und führt zu einer hohen Latenz. Dies kann auch dazu beitragen, die Privatsphäre zu schützen, da keine Daten das Gerät verlassen. Stellen Sie sich intelligente Geräte vor, die sich an Ihre tägliche Routine anpassen können, intelligente Industriesensoren, die den Unterschied zwischen Problemen und normalem Betrieb erkennen, und magisches Spielzeug, das Kindern beim Lernen auf unterhaltsame und unterhaltsame Weise hilft.

Unterstützte Plattformen

TensorFlow Lite für Mikrocontroller ist in C++ 11 geschrieben und erfordert eine 32-Bit-Plattform. Es wurde auf der Grundlage der sich intensiv mit vielen Prozessoren getestet Arm Cortex-M - Serie - Architektur und hat sich auf andere Architekturen einschließlich portiert ESP32 . Das Framework ist als Arduino-Bibliothek verfügbar. Es kann auch Projekte für Entwicklungsumgebungen wie Mbed generieren. Es ist Open Source und kann in jedes C++ 11-Projekt eingebunden werden.

Die folgenden Entwicklungsboards werden unterstützt:

Entdecken Sie die Beispiele

Jede Beispiel - Anwendung ist auf Github und hat eine README.md Datei , die erklärt , wie es zu seinen unterstützten Plattformen eingesetzt werden. Einige Beispiele enthalten auch End-to-End-Tutorials, die eine bestimmte Plattform verwenden, wie unten angegeben:

Arbeitsablauf

Die folgenden Schritte sind erforderlich, um ein TensorFlow-Modell auf einem Mikrocontroller bereitzustellen und auszuführen:

  1. Trainieren Sie ein Modell:
    • Generieren Sie ein kleines TensorFlow Modell , das Zielgerät passen und enthält unterstützte Operationen .
    • Konvertieren in ein TensorFlow Lite Modell der Verwendung von TensorFlow Lite - Wandler .
    • Umwandeln in einem Byte - Array C unter Verwendung von Standardwerkzeugen , es zu speichern , in einem Nur - Lese-Programmspeicher auf dem Gerät.
  2. Führen Sie Inferenz auf dem Gerät mit der C ++ Bibliothek und die Ergebnisse verarbeiten.

Einschränkungen

TensorFlow Lite für Mikrocontroller wurde für die spezifischen Einschränkungen der Mikrocontroller-Entwicklung entwickelt. Wenn Sie an leistungsstärkeren Geräten arbeiten (z. B. einem Embedded-Linux-Gerät wie dem Raspberry Pi), ist das standardmäßige TensorFlow Lite-Framework möglicherweise einfacher zu integrieren.

Die folgenden Einschränkungen sollten berücksichtigt werden:

  • Unterstützung für eine begrenzte Teilmenge von TensorFlow Operationen
  • Unterstützung für eine begrenzte Anzahl von Geräten
  • Low-Level-C++-API, die eine manuelle Speicherverwaltung erfordert
  • Das Training auf dem Gerät wird nicht unterstützt

Nächste Schritte