7.9. TensorFlow Lite for Microcontrollers

إن TFLM هو وقت التشغيل الذي تستخدمه معظم الكاميرات لتنفيذ نموذج محمّل. فهو يحلّل ملف .tflite -- وهو FlatBuffer من العوامل والأوزان وأشكال الموترات -- ويمر على قائمة العوامل بالترتيب، موزّعاً كل عامل إلى نواة تنتج الموتر الوسيط التالي.

تعيش الموترات الوسيطة في ساحة موترات (tensor arena) ذات حجم ثابت تُخصَّص في وقت التحميل. تحدد الكاميرا حجم الساحة على مرورين: أولاً، يُبنى مفسّر مؤقت قابل للتخلص منه مقابل أقصى كومة حرة بحيث يستطيع النموذج الإبلاغ عن ذاكرة العمل التي يحتاجها؛ ثم يُخصَّص المفسّر الدائم بذلك الحجم بالضبط زائد هامش صغير. وتترك النماذج الأصغر مساحة كومة حرة أكبر لبقية البرنامج النصي.

إن TFLM هو المحرك على H7 وRT1062 و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.

إن المحرك الموجود في وسط predict() هو مكدس مختلف في كل عائلة كاميرات.

7.9.1. محلّل العوامل (op resolver)

لا يشحن TFLM كل نواة. تربط الكاميرا محلّلاً (resolver) يسرد العوامل التي يستطيع تنفيذها، والنموذج الذي يُحمَّل مقابل المحلّل يفشل في وقت التحميل إذا كان يحتوي على عامل ليس في القائمة. يسجّل الإصدار المشحون العوامل الشائعة في شبكات الرؤية ومعالجة الإشارات -- طبقات الالتفاف والطبقات الكثيفة، وطبقات التجميع والتنشيط، وعاملي إعادة التشكيل والدمج، وعاملي التكميم وإلغاء التكميم -- بحيث يُحمَّل نموذج مُدرَّب على إحدى البنى القياسية (YOLO، MediaPipe، MobileNet) دون توسيع القائمة.

يسجّل إصدار AE3 إضافةً إلى ذلك عامل Ethos-U. والنموذج المُترجَم بـ Vela هو بخلاف ذلك ملف .tflite عادي، ويمر عليه TFLM بشكل عادي؛ فتصل الرسوم الفرعية الموسومة بـ Vela إلى عامل Ethos-U وتوزَّع إلى NPU.