LiteRT für Mikrocontroller

LiteRT für Mikrocontroller wurde zum Ausführen von Modellen für maschinelles Lernen entwickelt auf Mikrocontrollern und anderen Geräten mit nur wenigen Kilobyte Speicher. Die Kernlaufzeit passt in 16 KB auf einen Arm Cortex M3-Prozessor und kann viele einfache Modelle. Es erfordert keine Betriebssystemunterstützung, Standard-C- oder C++- oder die dynamische Speicherzuweisung.

Warum Mikrocontroller wichtig sind

Mikrocontroller sind in der Regel kleine, schwächere Rechengeräte, die in eine Hardware eingebettet sind, die einfache Berechnungen erfordert. Durch den Einsatz von mit winzigen Mikrocontrollern zu lernen, können wir die Intelligenz von Milliarden Geräte, die wir in unserem Leben nutzen, einschließlich Haushaltsgeräten und Internet der Things-Geräte, ohne auf teure Hardware oder zuverlässiges Internet angewiesen zu sein -Verbindungen, die häufig von Bandbreiten- und Stromeinschränkungen abhängig sind. führt zu hoher Latenz. Dies trägt auch zum Schutz der Privatsphäre bei, da keine Daten das Gerät verlässt. Stellen Sie sich intelligente Geräte vor, die sich an Ihren täglichen Ablauf anpassen können. routinemäßigen, intelligenten Industriesensoren, die den Unterschied zwischen Probleme, normalen Betrieb und magisches Spielzeug, das Kindern dabei helfen kann, auf unterhaltsame Weise zu lernen. und reizvolle Möglichkeiten.

Unterstützte Plattformen

LiteRT für Mikrocontroller ist in C++ 17 geschrieben und erfordert 32-Bit- Plattform. Es wurde umfassend mit vielen Prozessoren getestet, die auf der Arm Cortex-M-Serie Architektur und wurde in andere Architekturen übertragen, darunter ESP32: Die ist als Arduino-Bibliothek verfügbar. Es kann auch Projekte für Entwicklungsumgebungen wie Mbed. Es ist Open Source und kann in einem beliebigen C++ 17-Projekt.

Die folgenden Entwicklungs-Boards werden unterstützt:

Beispiele ansehen

Jede Beispielanwendung ist aktiviert GitHub Sie enthält eine README.md-Datei, in der erklärt wird, wie sie auf der unterstützten Plattformen. Einige Beispiele umfassen auch End-to-End-Anleitungen mit einem spezifischen wie unten angegeben:

Workflow

Die folgenden Schritte sind erforderlich, um ein TensorFlow-Modell in einem Mikrocontroller:

  1. Modell trainieren: <ph type="x-smartling-placeholder">
      </ph>
    • Generieren Sie ein kleines TensorFlow-Modell, das zu Ihrem Zielgerät passt. enthält unterstützte Vorgänge.
    • Konvertieren Sie die Modelle in ein LiteRT-Modell mithilfe der LiteRT-Konverter.
    • Konvertieren Sie es in ein C-Byte-Array mithilfe von Standardtools, um sie in einem schreibgeschützter Programmspeicher auf dem Gerät.
  2. Mit der C++-Bibliothek und dem entsprechenden Prozess Inferenzen auf dem Gerät ausführen die Ergebnisse.

Beschränkungen

LiteRT für Mikrocontroller wurde für die spezifischen Anforderungen von Mikrocontroller-Entwicklung. Wenn Sie leistungsstärkere Geräte (für einem eingebetteten Linux-Gerät wie dem Raspberry Pi), Das LiteRT-Framework lässt sich möglicherweise einfacher integrieren.

Dabei sind folgende Einschränkungen zu beachten:

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

Nächste Schritte