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.

Three columns side by side. Left: H7 and RT1062 run TFLM with CMSIS-NN kernels on a Cortex-M7. Middle: AE3 runs TFLM with CMSIS-NN and the Ethos-U operator on a Cortex-M55 with an Ethos-U55 NPU. Right: N6 runs STAI on a Neural-ART NPU.

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.