TensorFlow Lite برای میکروکنترلرها برای اجرای مدل های یادگیری ماشین در میکروکنترلرها و دستگاه های دیگر فقط با چند کیلوبایت حافظه ساخته شده است. زمان اجرای هسته فقط 16 کیلوبایت بر روی Arm Cortex M3 قرار می گیرد و می تواند بسیاری از مدل های اساسی را اجرا کند. این به پشتیبانی سیستم عامل ، هیچ کتابخانه استاندارد C یا C ++ یا تخصیص حافظه پویا نیازی ندارد.
چرا میکروکنترلرها مهم هستند
میکروکنترلرها معمولاً دستگاه های محاسباتی کوچک و کم نیرو هستند که در سخت افزار تعبیه شده اند و به محاسبات اساسی احتیاج دارند. با آوردن یادگیری ماشینی به میکروکنترلرهای کوچک ، می توانیم هوش میلیاردها دستگاهی را که در زندگی خود استفاده می کنیم ، از جمله لوازم خانگی و دستگاه های اینترنت اشیا boost ، بدون تکیه بر سخت افزار گران قیمت یا اتصالات اینترنتی قابل اعتماد ، که اغلب تحت پهنای باند و محدودیت های قدرت و منجر به تأخیر زیاد می شود. این امر همچنین می تواند به حفظ حریم خصوصی شما کمک کند ، زیرا هیچ داده ای از دستگاه خارج نمی شود. وسایل هوشمندی را تصور کنید که می توانند با برنامه روزمره شما سازگار شوند ، سنسورهای هوشمند صنعتی که تفاوت بین مشکلات و عملکرد طبیعی را درک می کنند و اسباب بازی های جادویی که می توانند به بچه ها به روش های سرگرم کننده و لذت بخش یاد بگیرند.
سیستم عامل های پشتیبانی شده
TensorFlow Lite برای میکروکنترلرها با C ++ 11 نوشته شده و به یک بستر 32 بیتی نیاز دارد. این آزمایش با بسیاری از پردازنده های مبتنی بر معماری Arm Cortex-M به طور گسترده آزمایش شده و به سایر معماری ها از جمله ESP32 منتقل شده است . این چارچوب به عنوان کتابخانه آردوینو در دسترس است. همچنین می تواند پروژه هایی را برای محیط های توسعه مانند Mbed ایجاد کند. این منبع آزاد است و می تواند در هر پروژه C ++ 11 گنجانده شود.
تابلوهای توسعه زیر پشتیبانی می شوند:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- کیت کشف STM32F746
- Adafruit EdgeBadge
- کیت Adafruit TensorFlow Lite مخصوص میکروکنترلرها
- Adafruit Circuit Playground Bluefruit
- اسپرسیف ESP32-DevKitC
- اسپرسیف ESP-EY
- ترمینال Wio: ATSAMD51
- هیئت توسعه Himax WE-I Plus EVB Endpoint AI
- پلت فرم توسعه نرم افزار Synopsys DesignWare ARC EM
نمونه ها را کاوش کنید
هر برنامه کاربردی در Github قرار دارد و دارای یک فایل README.md
است که نحوه استقرار آن را در سیستم عامل های پشتیبانی شده توضیح می دهد. همانطور که در زیر آورده شده است ، برخی از نمونه ها دارای آموزشهای پایان به انتها با استفاده از یک بستر خاص هستند:
- Hello World - اصول مطلق استفاده از TensorFlow Lite را برای میکروکنترلرها نشان می دهد
- گفتار کوچک - ضبط صدا با میکروفون برای تشخیص کلمات "بله" و "نه"
- عصای جادویی - داده های شتاب سنج را برای دسته بندی سه حرکت فیزیکی مختلف ضبط می کند
- تشخیص شخص - داده های دوربین را با حسگر تصویر ضبط می کند تا حضور یا عدم حضور یک شخص را تشخیص دهد
جریان کار
برای استقرار و اجرای مدل TensorFlow در میکروکنترلر مراحل زیر لازم است:
- آموزش یک مدل :
- یک مدل کوچک TensorFlow ایجاد کنید که متناسب با دستگاه مورد نظر شما باشد و شامل عملیات پشتیبانی شده باشد .
- با استفاده از مبدل TensorFlow Lite به مدل TensorFlow Lite تبدیل شوید .
- با استفاده از ابزارهای استاندارد به یک آرایه C byte تبدیل کنید تا آن را در حافظه برنامه فقط خواندنی روی دستگاه ذخیره کنید.
- با استفاده از کتابخانه C ++ استنباط را روی دستگاه اجرا کنید و نتایج را پردازش کنید.
محدودیت ها
TensorFlow Lite برای میکروکنترلرها برای محدودیت های خاص توسعه میکروکنترلر طراحی شده است. اگر روی دستگاه های قدرتمندتری کار می کنید (به عنوان مثال ، یک دستگاه جاسازی شده لینوکس مانند Raspberry Pi) ، ادغام چارچوب استاندارد TensorFlow Lite آسان تر است.
محدودیت های زیر باید در نظر گرفته شود:
- پشتیبانی از زیرمجموعه محدود عملیات TensorFlow
- پشتیبانی از مجموعه محدودی از دستگاه ها
- سطح پایین C ++ API که به مدیریت حافظه دستی نیاز دارد
- آموزش دستگاه پشتیبانی نمی شود
مراحل بعدی
- با میکروکنترلرها شروع کنید تا برنامه نمونه را امتحان کنید و نحوه استفاده از API را بیاموزید.
- برای یادگیری نحوه استفاده از کتابخانه در پروژه خود ، کتابخانه C ++ را بفهمید.
- ساخت و مدل تبدیل برای کسب اطلاعات بیشتر در مورد آموزش و مدل های تبدیل برای استقرار در میکروکنترلرها.