7.9. TensorFlow Lite for Microcontrollers¶
TFLM je běhové prostředí, které většina kamer používá ke spuštění načteného modelu. Naparsuje soubor .tflite – FlatBuffer operátorů, vah a tvarů tenzorů – a prochází seznam operátorů popořadě, přičemž každý operátor odesílá do jádra, které vyprodukuje další mezilehlý tenzor.
Mezilehlé tenzory žijí v tenzorové aréně pevné velikosti alokované při načtení. Kamera dimenzuje arénu ve dvou průchodech: nejprve se proti maximální volné haldě postaví jednorázový interpret, aby model mohl ohlásit pracovní paměť, kterou potřebuje; trvalý interpret se pak alokuje s touto přesnou velikostí plus malou rezervou. Menší modely ponechávají více volné haldy pro zbytek skriptu.
TFLM je engine na H7, RT1062 a AE3.
Engine uprostřed predict() je na každé rodině kamer jiný stack.¶
7.9.1. Resolver operátorů¶
TFLM nedodává každé jádro. Kamera slinkuje resolver, který vypisuje operátory, jež dokáže spustit, a model načtený proti resolveru selže při načtení, pokud obsahuje operátor, který v seznamu není. Dodávané sestavení registruje operátory běžné ve vizuálních a signálových sítích – konvoluční a husté vrstvy, pooling a aktivační vrstvy, operátory reshape a concat, operátory quantize a dequantize – takže model trénovaný proti jedné ze standardních architektur (YOLO, MediaPipe, MobileNet) se načte bez rozšiřování seznamu.
Sestavení pro AE3 navíc registruje operátor Ethos-U. Model zkompilovaný pomocí Vela je jinak běžný .tflite a TFLM jím prochází běžně; podgrafy označené Velou narazí na operátor Ethos-U a odešlou se na NPU.