TensorFlow Lite dla mikrokontrolerów

Model TensorFlow Lite dla mikrokontrolerów został opracowany z myślą o uruchamianiu modeli systemów uczących się w mikrokontrolerach i innych urządzeniach, które mają zaledwie kilka kilobajtów pamięci. Podstawowe środowisko wykonawcze mieści się w 16 KB na urządzeniu Arm Cortex M3 i może działać z wieloma modelami podstawowymi. Nie wymaga obsługi systemu operacyjnego, standardowych bibliotek C ani C++ ani dynamicznej alokacji pamięci.

Dlaczego mikrokontrolery są ważne

Mikrokontrolery to zwykle niewielkie urządzenia komputerowe o małej mocy, które są wbudowane w sprzęt, który wymaga podstawowych obliczeń. Udostępniając systemy uczące się w małych mikrokontrolerach, możemy zwiększyć inteligencję miliardów urządzeń, których używamy w życiu codziennym, w tym urządzeń AGD i urządzeń z dostępem do internetu. Nie musimy polegać na kosztownym sprzęcie ani niezawodnym połączeniu internetowym, które często podlega ograniczeniom przepustowości i zasilania, co skutkuje dużymi opóźnieniami. Może to też pomóc chronić prywatność, ponieważ żadne dane nie opuszczają urządzenia. Wyobraź sobie inteligentne urządzenia, które dostosowują się do codziennej rutyny, inteligentne czujniki przemysłowe, które rozumieją różnicę między problemami a normalnym działaniem, oraz magiczne zabawki, które pomagają dzieciom uczyć się przez zabawę i zabawę.

Obsługiwane platformy

Platforma TensorFlow Lite dla mikrokontrolerów jest napisana w języku C++ 17 i wymaga 32-bitowej platformy. Został on dokładnie przetestowany z wykorzystaniem wielu procesorów opartych na architekturze Arm Cortex-M Series i został przystosowany do innych architektur, w tym do ESP32. Platforma jest dostępna jako biblioteka Arduino. Może też generować projekty na potrzeby środowisk programistycznych, takich jak Mbed. Jest to oprogramowanie open source, które można umieścić w dowolnym projekcie C++17.

Obsługiwane są te platformy programistyczne:

Zapoznaj się z przykładami

Każda przykładowa aplikacja znajduje się w GitHub i zawiera plik README.md, który wyjaśnia, jak można ją wdrożyć na obsługiwanych platformach. W niektórych przykładach znajdziesz też kompleksowe samouczki dotyczące konkretnej platformy:

Przepływ pracy

Aby wdrożyć i uruchomić model TensorFlow na mikrokontrolerze, wykonaj te czynności:

  1. Wytrenuj model:
  2. Przeprowadź wnioskowanie na urządzeniu za pomocą biblioteki C++ i przetwórz wyniki.

Ograniczenia

Interfejs TensorFlow Lite dla mikrokontrolerów został zaprojektowany z myślą o specyficznych ograniczeniach związanych z programowaniem mikrokontrolerów. Jeśli pracujesz na bardziej wydajnych urządzeniach (np. na osadzonym urządzeniu z systemem Linux, takim jak Raspberry Pi), łatwiejsza może być integracja ze standardową platformą TensorFlow Lite.

Weź pod uwagę te ograniczenia:

  • obsługę ograniczonego podzbioru operacji TensorFlow,
  • Obsługa ograniczonej liczby urządzeń
  • Interfejs API C++ niskiego poziomu wymagający ręcznego zarządzania pamięcią
  • Trenowanie na urządzeniu nie jest obsługiwane

Dalsze kroki