تم تصميم TensorFlow Lite for Microcontrollers لتشغيل نماذج التعلم الآلي على المتحكمات الدقيقة والأجهزة الأخرى التي لا تحتوي إلا على عدد قليل من الكيلو بايت من الذاكرة. وقت التشغيل الأساسي يناسب فقط 16 كيلو بايت على Arm Cortex M3 ويمكنه تشغيل العديد من الطرز الأساسية. لا يتطلب دعم نظام التشغيل ، أو أي مكتبات C أو C ++ قياسية ، أو تخصيص ذاكرة ديناميكي.
لماذا تعتبر الميكروكونترولر مهمة
عادة ما تكون المتحكمات الدقيقة عبارة عن أجهزة حوسبة صغيرة منخفضة الطاقة مدمجة داخل الأجهزة التي تتطلب عمليات حسابية أساسية. من خلال توفير التعلم الآلي للميكروكونترولر الصغيرة ، يمكننا تعزيز ذكاء مليارات الأجهزة التي نستخدمها في حياتنا ، بما في ذلك الأجهزة المنزلية وأجهزة إنترنت الأشياء ، دون الاعتماد على أجهزة باهظة الثمن أو اتصالات إنترنت موثوقة ، والتي غالبًا ما تخضع لعرض النطاق الترددي و قيود الطاقة ويؤدي إلى زمن انتقال مرتفع. يمكن أن يساعد هذا أيضًا في الحفاظ على الخصوصية ، نظرًا لعدم خروج أي بيانات من الجهاز. تخيل الأجهزة الذكية التي يمكن أن تتكيف مع روتينك اليومي ، وأجهزة الاستشعار الصناعية الذكية التي تفهم الفرق بين المشاكل والتشغيل العادي ، والألعاب السحرية التي يمكن أن تساعد الأطفال على التعلم بطرق ممتعة وممتعة.
المنصات المدعومة
تمت كتابة TensorFlow Lite for Microcontrollers بلغة C ++ 11 وتتطلب نظام أساسي 32 بت. وقد تم اختباره على نطاق واسع مع العديد من المعالجات القائمة على ذراع اللحاء-M سلسلة الهندسة المعمارية، ولقد تم تصديرها إلى أبنية أخرى بما في ذلك ESP32 . الإطار متاح كمكتبة Arduino. يمكنه أيضًا إنشاء مشاريع لبيئات التطوير مثل Mbed. إنه مفتوح المصدر ويمكن تضمينه في أي مشروع C ++ 11.
يتم دعم لوحات التطوير التالية:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- طقم اكتشاف STM32F746
- Adafruit EdgeBadge
- Adafruit TensorFlow Lite لمجموعة أدوات التحكم الدقيقة
- ملعب حلبة Adafruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- محطة Wio: ATSAMD51
- هيماكس WE-I Plus EVB Endpoint AI Development Board
- منصة تطوير البرمجيات Synopsys DesignWare ARC EM
- سوني سبريسينس
استكشف الأمثلة
كل تطبيق المثال على جيثب ولديه README.md
الملف الذي يشرح كيف يمكن نشرهم في برامجه المعتمدة. تحتوي بعض الأمثلة أيضًا على برامج تعليمية شاملة باستخدام نظام أساسي معين ، كما هو موضح أدناه:
- مرحبا العالم - يوضح أساسيات المطلقة استخدام TensorFlow لايت للميكروكنترولر
- خطاب الصغير - يلتقط الصوت مع ميكروفون للكشف عن عبارة "نعم" و "لا"
- العصا السحرية - يجسد التسارع البيانات لتصنيف ثلاثة الإيماءات الجسدية المختلفة
- الكشف عن شخص - بيانات كاميرا يلتقط مع صورة الاستشعار للكشف عن وجود أو عدم وجود شخص
سير العمل
الخطوات التالية مطلوبة لنشر نموذج TensorFlow وتشغيله على متحكم دقيق:
- تدريب نموذج:
- توليد نموذج TensorFlow الصغيرة التي يمكن أن تناسب الجهاز الهدف ويحتوي على العمليات التي يساندها .
- تحويل إلى نموذج TensorFlow لايت باستخدام تحويل TensorFlow لايت .
- تحويل إلى مجموعة C بايت باستخدام أدوات قياسية لتخزينه في ذاكرة البرنامج للقراءة فقط على الجهاز.
- الاستدلال على تشغيل الجهاز باستخدام C ++ مكتبة ومعالجة النتائج.
محددات
تم تصميم TensorFlow Lite for Microcontrollers للقيود المحددة لتطوير وحدات التحكم الدقيقة. إذا كنت تعمل على أجهزة أكثر قوة (على سبيل المثال ، جهاز Linux مضمن مثل Raspberry Pi) ، فقد يكون من الأسهل دمج إطار عمل TensorFlow Lite القياسي.
يجب مراعاة القيود التالية:
- دعم ل مجموعة محدودة من العمليات TensorFlow
- دعم لمجموعة محدودة من الأجهزة
- تتطلب واجهة برمجة تطبيقات C ++ ذات المستوى المنخفض إدارة يدوية للذاكرة
- التدريب على الجهاز غير مدعوم
الخطوات التالية
- تبدأ مع ميكروكنترولر لمحاولة تطبيق سبيل المثال، وتعلم كيفية استخدام API.
- فهم مكتبة C ++ لمعرفة كيفية استخدام المكتبة في المشروع الخاص بك.
- بناء ونماذج تحويل لمعرفة المزيد عن التدريب ونماذج تحويل للنشر على ميكروكنترولر.