7.9. TensorFlow Lite for Microcontrollers¶
TFLM, çoğu kameranın yüklenmiş bir modeli çalıştırmak için kullandığı çalışma zamanıdır. .tflite dosyasını – operatörlerden, ağırlıklardan ve tensör şekillerinden oluşan bir FlatBuffer – ayrıştırır ve operatör listesini sırayla gezerek, her operatörü bir sonraki ara tensörü üreten bir çekirdeğe yönlendirir.
Ara tensörler, yükleme zamanında ayrılan sabit boyutlu bir tensör alanında (tensor arena) yaşar. Kamera alanı iki geçişte boyutlandırır: önce, maksimum boş yığına göre tek kullanımlık bir yorumlayıcı oluşturulur, böylece model ihtiyaç duyduğu çalışma belleğini bildirebilir; ardından kalıcı yorumlayıcı, tam olarak o boyut artı küçük bir pay ile ayrılır. Daha küçük modeller, betiğin geri kalanı için daha fazla yığını boş bırakır.
TFLM, H7, RT1062 ve AE3 üzerindeki motordur.
predict()‘in ortasındaki motor, her kamera ailesinde farklı bir yığındır.¶
7.9.1. Op çözümleyici¶
TFLM her çekirdeği sevk etmez. Kamera, çalıştırabileceği operatörleri listeleyen bir çözümleyici (resolver) bağlar ve çözümleyiciye göre yüklenen bir model, listede olmayan bir operatör içeriyorsa yükleme zamanında başarısız olur. Sevk edilen derleme, görüntü ve sinyal işleme ağlarında yaygın olan operatörleri kaydeder – evrişim ve yoğun katmanlar, havuzlama ve aktivasyon katmanları, reshape ve concat operatörleri, quantize ve dequantize operatörleri – böylece standart mimarilerden birine (YOLO, MediaPipe, MobileNet) göre eğitilmiş bir model, liste genişletilmeden yüklenir.
AE3 derlemesi ek olarak Ethos-U operatörünü kaydeder. Vela ile derlenmiş bir model bunun dışında normal bir .tflite‘tır ve TFLM onu normal şekilde gezer; Vela ile etiketlenmiş alt grafikler Ethos-U operatörüne ulaşır ve NPU‘ya yönlendirilir.