7.9. TensorFlow Lite for Microcontrollers

TFLM je okruženje za izvođenje koje većina kamera koristi za izvršavanje učitanog modela. Raščlanjuje .tflite datoteku – FlatBuffer operatora, težina i oblika tenzora – i prolazi popis operatora redom, usmjeravajući svaki operator na jezgru koja proizvodi sljedeći međutenzor.

Međutenzori žive u tenzorskoj areni fiksne veličine dodijeljenoj u trenutku učitavanja. Kamera određuje veličinu arene u dva prolaza: prvo se gradi privremeni interpreter prema maksimalnoj slobodnoj gomili kako bi model mogao prijaviti radnu memoriju koju treba; trajni interpreter se zatim dodjeljuje s tom točnom veličinom uz malu rezervu. Manji modeli ostavljaju više slobodne gomile za ostatak skripte.

TFLM je pogon na H7, RT1062 i AE3.

Tri stupca jedan pored drugog. Lijevo: H7 i RT1062 pokreću TFLM s CMSIS-NN jezgrama na Cortex-M7. Sredina: AE3 pokreće TFLM s CMSIS-NN i Ethos-U operatorom na Cortex-M55 s Ethos-U55 NPU-om. Desno: N6 pokreće STAI na Neural-ART NPU-u.

Pogon u sredini predict() poziva je drugačiji niz na svakoj obitelji kamera.

7.9.1. Razlučivač operatora

TFLM ne isporučuje svaku jezgru. Kamera povezuje razlučivač koji navodi operatore koje može izvršiti, a model učitan prema razlučivaču ne uspijeva u trenutku učitavanja ako sadrži operator koji nije na popisu. Isporučena gradnja registrira operatore uobičajene u mrežama za vid i obradu signala – konvolucijske i guste slojeve, slojeve sažimanja i aktivacije, operatore preoblikovanja i spajanja, operatore kvantizacije i dekvantizacije – pa model treniran prema jednoj od standardnih arhitektura (YOLO, MediaPipe, MobileNet) učitava se bez proširivanja popisa.

AE3 gradnja dodatno registrira Ethos-U operator. Vela-kompilirani model inače je normalan .tflite, a TFLM ga normalno prolazi; podgrafovi označeni Velom pogađaju Ethos-U operator i usmjeravaju se na NPU.