TensorFlow Lite dla mikrokontrolerów

TensorFlow Lite for Microcontrollers jest przeznaczony do uruchamiania modeli uczenia maszynowego na mikrokontrolerach i innych urządzeniach z zaledwie kilkoma kilobajtami pamięci. Podstawowe środowisko wykonawcze mieści się w 16 KB na Arm Cortex M3 i może obsługiwać wiele podstawowych modeli. Nie wymaga obsługi systemu operacyjnego, żadnych standardowych bibliotek C lub C++ ani dynamicznej alokacji pamięci.

Dlaczego mikrokontrolery są ważne

Mikrokontrolery to zazwyczaj małe urządzenia komputerowe o niskim poborze mocy, które są wbudowane w sprzęt wymagający podstawowych obliczeń. Wprowadzając uczenie maszynowe do małych mikrokontrolerów, możemy zwiększyć inteligencję miliardów urządzeń, z których korzystamy w naszym życiu, w tym urządzeń gospodarstwa domowego i urządzeń Internetu rzeczy, bez polegania na drogim sprzęcie lub niezawodnych połączeniach internetowych, które często zależą od przepustowości i ograniczenia mocy i skutkuje dużymi opóźnieniami. Może to również pomóc w zachowaniu prywatności, ponieważ żadne dane nie opuszczają urządzenia. Wyobraź sobie inteligentne urządzenia, które mogą dostosować się do Twojej codziennej rutyny, inteligentne czujniki przemysłowe, które rozumieją różnicę między problemami a normalnym działaniem, oraz magiczne zabawki, które mogą pomóc dzieciom uczyć się w zabawny i zachwycający sposób.

Obsługiwane platformy

TensorFlow Lite for Microcontrollers jest napisany w C++ 17 i wymaga platformy 32-bitowej. Został szeroko przetestowany z wieloma procesorami opartymi na architekturze Arm Cortex-M Series i został przeniesiony na inne architektury, w tym ESP32 . Framework jest dostępny jako biblioteka Arduino. Może również generować projekty dla środowisk programistycznych, takich jak Mbed. Jest to oprogramowanie typu open source i można je włączyć do dowolnego projektu C++ 17.

Obsługiwane są następujące płyty rozwojowe:

Zapoznaj się z przykładami

Każda przykładowa aplikacja znajduje się w serwisie Github i zawiera plik README.md wyjaśniający, w jaki sposób można ją wdrożyć na obsługiwanych platformach. Niektóre przykłady zawierają również kompleksowe samouczki korzystające z określonej platformy, jak podano poniżej:

Przepływ pracy

Aby wdrożyć i uruchomić model TensorFlow na mikrokontrolerze, wymagane są następujące kroki:

  1. Trenuj model :
  2. Uruchom wnioskowanie na urządzeniu przy użyciu biblioteki C++ i przetwórz wyniki.

Ograniczenia

TensorFlow Lite for Microcontrollers został zaprojektowany z myślą o specyficznych ograniczeniach związanych z rozwojem mikrokontrolerów. Jeśli pracujesz na potężniejszych urządzeniach (na przykład wbudowanym urządzeniu z systemem Linux, takim jak Raspberry Pi), standardowa platforma TensorFlow Lite może być łatwiejsza do zintegrowania.

Należy wziąć pod uwagę następujące ograniczenia:

  • Obsługa ograniczonego podzbioru operacji TensorFlow
  • Wsparcie dla ograniczonego zestawu urządzeń
  • Interfejs API C++ niskiego poziomu wymagający ręcznego zarządzania pamięcią
  • Szkolenie na urządzeniu nie jest obsługiwane

Następne kroki