7.9. TensorFlow Lite for Microcontrollers¶
A TFLM az a futtatókörnyezet, amelyet a legtöbb kamera egy betöltött modell végrehajtásához használ. Beolvassa a .tflite fájlt – operátorok, súlyok és tenzoralakok FlatBufferét –, és sorban végigjárja az operátorlistát, az egyes operátorokat egy olyan kernelhez irányítva, amely előállítja a következő köztes tenzort.
A köztes tenzorok egy betöltéskor lefoglalt, rögzített méretű tenzorarénában élnek. A kamera két menetben méretezi az arénát: először egy eldobható interpreter épül a maximális szabad heap-pel szemben, hogy a modell jelenteni tudja a szükséges munkamemóriát; ezután a tartós interpreter pontosan ezzel a mérettel plusz egy kis ráhagyással lesz lefoglalva. A kisebb modellek több szabad heap-et hagynak a szkript többi része számára.
A TFLM a motor a H7-en, az RT1062-n és az AE3-on.
A predict() közepén lévő motor minden kameracsaládon más-más réteg.¶
7.9.1. Az op resolver¶
A TFLM nem szállít minden kernelt. A kamera egy resolvert linkel be, amely felsorolja a végrehajtható operátorokat, és egy a resolverrel szemben betöltött modell betöltéskor meghiúsul, ha olyan operátort tartalmaz, amely nincs a listán. A szállított build regisztrálja a látási és jelfeldolgozó hálózatokban gyakori operátorokat – a konvolúciós és sűrű rétegeket, a pool és aktivációs rétegeket, a reshape és concat operátorokat, a quantize és dequantize operátorokat –, így egy a szabványos architektúrák valamelyikére (YOLO, MediaPipe, MobileNet) betanított modell a lista bővítése nélkül töltődik be.
Az AE3 build ezen felül regisztrálja az Ethos-U operátort. Egy Vela-val fordított modell egyébként egy normál .tflite, és a TFLM normál módon járja végig; a Vela-val megjelölt részgráfok elérik az Ethos-U operátort, és az NPU-hoz osztják ki.