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 uruchomieniowe mieści się po prostu 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, energooszczędne urządzenia komputerowe, które są wbudowane w sprzęt wymagający podstawowych obliczeń. Wprowadzając uczenie maszynowe do maleńkich 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 są uzależnione od przepustowości i ograniczenia mocy i powoduje duże opóźnienia. 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 normalną pracą, 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++ 11 i wymaga platformy 32-bitowej. Został gruntownie przetestowany z wieloma procesorami opartymi na architekturze serii Arm Cortex-M i został przeniesiony do innych architektur, 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że być zawarte w dowolnym projekcie C++ 11.

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

Poznaj przykłady

Każda przykładowa aplikacja znajduje się na Github i ma plik README.md , który wyjaśnia, jak można ją wdrożyć na obsługiwanych platformach. Niektóre przykłady zawierają również samouczki typu end-to-end na określonej platformie, jak podano poniżej:

Przepływ pracy

Następujące kroki są wymagane do wdrożenia i uruchomienia modelu TensorFlow na mikrokontrolerze:

  1. Wytrenuj modelkę :
  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 rozwoju mikrokontrolerów. Jeśli pracujesz na bardziej wydajnych urządzeniach (na przykład wbudowanym urządzeniu 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ń
  • Niskopoziomowe API C++ wymagające ręcznego zarządzania pamięcią
  • Trening na urządzeniu nie jest obsługiwany

Następne kroki