LiteRT për mikrokontrolluesit

LiteRT për mikrokontrolluesit është krijuar për të ekzekutuar modele të mësimit të makinerive në mikrokontrollues dhe pajisje të tjera me vetëm disa kilobajtë memorie. Koha kryesore e funksionimit përshtatet vetëm në 16 KB në një Arm Cortex M3 dhe mund të ekzekutojë shumë modele bazë. Nuk kërkon mbështetje të sistemit operativ, ndonjë bibliotekë standarde C ose C++, ose shpërndarje dinamike të memories.

Pse mikrokontrolluesit janë të rëndësishëm

Mikrokontrolluesit janë zakonisht pajisje kompjuterike të vogla, me fuqi të ulët, të cilat janë të ngulitura brenda harduerit që kërkon llogaritje bazë. Duke sjellë mësimin e makinerive te mikrokontrolluesit e vegjël, ne mund të rrisim inteligjencën e miliarda pajisjeve që përdorim në jetën tonë, duke përfshirë pajisjet shtëpiake dhe pajisjet e Internetit të Gjërave, pa u mbështetur në pajisje të shtrenjta ose lidhje të besueshme interneti, gjë që shpesh është subjekt i kufizimeve të gjerësisë së brezit dhe fuqisë dhe rezulton në vonesë të lartë. Kjo gjithashtu mund të ndihmojë në ruajtjen e privatësisë, pasi pajisja nuk largohet nga asnjë e dhënë. Imagjinoni pajisje inteligjente që mund të përshtaten me rutinën tuaj të përditshme, sensorë industrialë inteligjentë që kuptojnë ndryshimin midis problemeve dhe funksionimit normal, dhe lodra magjike që mund t'i ndihmojnë fëmijët të mësojnë në mënyra argëtuese dhe të lezetshme.

Platformat e mbështetura

LiteRT për mikrokontrolluesit është shkruar në C++ 17 dhe kërkon një platformë 32-bit. Ai është testuar gjerësisht me shumë procesorë të bazuar në arkitekturën e Serisë Arm Cortex-M dhe është transferuar në arkitektura të tjera duke përfshirë ESP32 . Korniza është e disponueshme si një bibliotekë Arduino. Mund të gjenerojë gjithashtu projekte për mjedise zhvillimi si Mbed. Është me burim të hapur dhe mund të përfshihet në çdo projekt C++ 17.

Bordet e mëposhtme të zhvillimit mbështeten:

Eksploroni shembujt

Çdo shembull aplikimi është në GitHub dhe ka një skedar README.md që shpjegon se si mund të vendoset në platformat e tij të mbështetura. Disa shembuj kanë gjithashtu mësime nga fundi në fund duke përdorur një platformë specifike, siç jepet më poshtë:

Rrjedha e punës

Hapat e mëposhtëm kërkohen për të vendosur dhe ekzekutuar një model TensorFlow në një mikrokontrollues:

  1. Trajnoni një model :
    • Gjeneroni një model të vogël TensorFlow që mund të përshtatet me pajisjen tuaj të synuar dhe përmban operacione të mbështetura .
    • Konvertoni në një model LiteRT duke përdorur konvertuesin LiteRT .
    • Konvertoni në një grup bajt C duke përdorur mjete standarde për ta ruajtur atë në një memorie programi vetëm për lexim në pajisje.
  2. Ekzekutoni konkluzionet në pajisje duke përdorur bibliotekën C++ dhe përpunoni rezultatet.

Kufizimet

LiteRT për mikrokontrolluesit është krijuar për kufizimet specifike të zhvillimit të mikrokontrolluesve. Nëse jeni duke punuar në pajisje më të fuqishme (për shembull, një pajisje Linux e integruar si Raspberry Pi), korniza standarde LiteRT mund të jetë më e lehtë për t'u integruar.

Kufizimet e mëposhtme duhet të merren parasysh:

  • Mbështetje për një nëngrup të kufizuar të operacioneve TensorFlow
  • Mbështetje për një grup të kufizuar pajisjesh
  • API C++ e nivelit të ulët që kërkon menaxhim manual të kujtesës
  • Trajnimi në pajisje nuk mbështetet

Hapat e ardhshëm