تم تصميم TensorFlow Lite لوحدات التحكّم الدقيقة لتشغيل نماذج تعلُّم الآلة على وحدات التحكّم الدقيقة وغيرها من الأجهزة التي يبلغ حجمها بضعة كيلوبايت من الذاكرة. يصل حجم وقت التشغيل الأساسي إلى 16 كيلوبايت على Arm Cortex M3، ما يتيح تشغيل العديد من النماذج الأساسية. لا يتطلب دعمًا لنظام التشغيل أو أي مكتبات قياسية في C أو C++ أو تخصيص ديناميكي للذاكرة.
سبب أهمية وحدات التحكم الدقيقة
وحدات التحكم الدقيقة هي عادةً أجهزة حوسبة صغيرة منخفضة الطاقة تكون مضمّنة في الأجهزة التي تتطلب حسابًا أساسيًا. من خلال تزويد وحدات التحكم الدقيقة بالتعلم الآلي، يمكننا تعزيز ذكاء المليارات من الأجهزة التي نستخدمها في حياتنا، بما في ذلك الأجهزة المنزلية وأجهزة إنترنت الأشياء، بدون الاعتماد على الأجهزة باهظة الثمن أو الاتصالات الموثوقة بالإنترنت التي تخضع غالبًا لقيود معدل نقل البيانات والطاقة وينتج عنها وقت استجابة سريع. ويمكن أن يساعد ذلك أيضًا في الحفاظ على الخصوصية، نظرًا لعدم وجود أي بيانات تغادر الجهاز. تخيّل الأجهزة الذكية التي يمكنها التكيف مع الروتين اليومي، وأجهزة الاستشعار الصناعية الذكية التي تتفهم الفرق بين المشكلات والعمليات العادية، والألعاب السحرية التي يمكن أن تساعد الأطفال على التعلّم بطرق مرحة وممتعة.
المنصّات المعتمدة
إن TensorFlow Lite لوحدات التحكم الدقيقة مكتوب بلغة C++ 17 ويتطلب نظامًا أساسيًا بنظام 32 بت. وقد تم اختباره على نطاق واسع من خلال العديد من معالِجات البيانات استنادًا إلى بنية Arm Cortex-M Series، ثم تم نقلها إلى منصات أخرى، بما في ذلك ESP32. إطار العمل متاح كمكتبة Arduino. كما يمكنها أيضًا إنشاء مشروعات لبيئات التطوير مثل Mbed. إنه مفتوح المصدر ويمكن تضمينه في أي مشروع C++ 17.
يُسمح باستخدام لوحات التطوير التالية:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- مجموعة أدوات الاستكشاف STM32F746
- شارة Adafruit Edge
- مجموعة أدوات التحكّم الدقيق في Adafruit TensorFlow Lite
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- محطة Wio Terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- منصة Synopsys DesignWare ARC EM لتطوير البرامج
- Sony Spresense
استكشاف الأمثلة
يتوفر كل مثال من التطبيقات على GitHub ويحتوي على ملف README.md
يوضح كيفية نشره على الأنظمة الأساسية المتوافقة. تحتوي بعض الأمثلة أيضًا على برامج تعليمية شاملة باستخدام منصة
معينة، كما هو موضح أدناه:
- Hello World - توضح الأساسيات المطلقة لاستخدام TensorFlow Lite لوحدات التحكم الدقيقة
- الكلام المصغَّر - يلتقط الصوت باستخدام ميكروفون لرصد كلمتَي "نعم" و "لا".
- رصد الأشخاص - يتم التقاط بيانات الكاميرا باستخدام أداة استشعار الصور لرصد وجود شخص أو غيابه
سير العمل
الخطوات التالية مطلوبة لنشر نموذج TensorFlow وتشغيله على وحدة التحكم الدقيقة:
- تدريب نموذج:
- أنشِئ نموذج TensorFlow صغيرًا يناسب جهازك المستهدَف ويحتوي على عمليات متوافقة.
- التحويل إلى نموذج TensorFlow Lite باستخدام محوّل TensorFlow Lite
- التحويل إلى مصفوفة بايت C باستخدام الأدوات العادية لتخزينها في ذاكرة برنامج للقراءة فقط على الجهاز.
- يمكنك تنفيذ الاستنتاج على الجهاز باستخدام مكتبة C++ ومعالجة النتائج.
القيود
تم تصميم TensorFlow Lite لوحدات التحكم الدقيقة للتعامل مع القيود المحددة لتطوير وحدة التحكم الدقيقة. إذا كنت تعمل على أجهزة أكثر قوة (على سبيل المثال، جهاز Linux مضمّن مثل Raspberry Pi)، قد يكون من الأسهل دمج إطار عمل TensorFlow Lite.
يجب مراعاة القيود التالية:
- دعم مجموعة فرعية محدودة من عمليات TensorFlow
- التوافق مع مجموعة محدودة من الأجهزة
- واجهة برمجة تطبيقات C++ منخفضة المستوى تتطلب إدارة يدوية للذاكرة
- التدريب على الجهاز غير متاح
الخطوات التالية
- ابدأ باستخدام وحدات التحكم الدقيقة لتجربة تطبيق النموذج وكيفية استخدام واجهة برمجة التطبيقات.
- افهم مكتبة C++ لمعرفة كيفية استخدام المكتبة في مشروعك الخاص.
- إنشاء النماذج وتحويلها لمعرفة المزيد من المعلومات حول التدريب وتحويل النماذج للنشر على وحدات التحكم الدقيقة.