نسخه لایت تنسورفلو برای میکروکنترلرها
تنسورفلو نسخه لایت برای اجرای مدلهای یادگیری ماشین بر روی میکروکنترلرها و دیگر دستگاهها با تنها چند کیلوبایت حافظه Memory طراحی شده است.
زمان اجرای اصلی بر روی هسته مدل Arm Cortex M3 تنها در 16 کیلوبایت قابل اجرا و قرار گیری است. قابلیت اجرای مدلهای اصلی و بنیادی زیادی دارد. همچنین نیازی به پشتیبانی از سیستم عامل کتابخانههای استاندارد C یا ++C نیز ندارد.
هم رویش منتشر کرده است:
آموزش تنسورفلو __ پیاده سازی شبکه های عصبی با
توجه: ویژگیهای تنسورفلو نسخه لایت برای میکروکنترلرها توسط توسعه دهندگان با ترکیب آردوینو و تنسورفلو برای ایجاد تجربیات و ابزارهای بسیار شگفت انگیز به کار گرفته شده است. برای الهام گیری و ایجاد پروژههای TinyML خود به سایت مراجعه کنید.
چرا میکروکنترلرها مهم هستند
به طور معمول میکروکنترلرها ادوات محاسباتی با اندازه کوچک و با توان مصرفی پایین هستند و در درون سخت افزارهایی به کارگرفته شده اند که نیاز به محاسبات پایه ای و اساسی دارند.
با ظهور یادگیری ماشین بر روی میکروکنترلرهای بسیار کوچک، هوش میلیاردها دستگاهی که در زندگی روزمره از جمله لوازم خانگی و تجهیزات اینترنت اشیا مورد استفاده ما قرار می گیرند را ارتقا و بهبود دهیم. این بهبود بدون نیاز به سخت افزار گران قیمت یا ارتباطات قابل اطمینان اینترنتی که محدودیت پهنای باند و توان دارند و همچنین دارای تاخیرهای زیادی هستند، انجام پذیر است.
از آنجا که دیگر نیازی به تبادل داده میان دستگاهها نیست، این عملکرد به نگاه داشتن حریم شخصی کمک میکند. وسایلهای هوشمندی را تصور کنید که میتوانند با کارهای روزمره و عادی شما خود را سازگار کنند. مانند سنسورهای هوشمند صنعتی که توانایی تشخیص خطا یا صحیح بودن عملکرد را دارند و یا اسباب بازیهای خارق العاده ای که علاوه بر سرگرم کردن کودکان، به آنها آموزشهای مفیدی نیز میدهد.
سیستم عاملهای قابل پشتیبانی
تنسورفلو نسخه لایت در ++C نوشته شده است و یک پلتفرم 32 بیتی برای اجرای آن مورد نیاز است. تنسورفلولایت بر روی طیف بسیار زیادی از پردازندههای مبتنی بر معماری Arm Cortex-M Series تست و سپس به معماریهای دیگر از جمله ESP32 برده شده است. چارچوب اصلی به عنوان یک کتابخانه آردوینو در دسترس قرار داده شده است. همچنین برای محیط های توسعه یافته مانند Mbed می تواند پروژههایی را تولید کند. این نسخه از تنسورفلو به صورت منبع باز (Open Source) است و هر پروژه از ++C را می تواند شامل شود.
هم رویش منتشر کرده است:
آموزش میکروپایتون برای برنامهنویسی بردهای ESP32 و ESP8266
بوردهای توسعه یافته زیر تحت پوشش تنسور فلو قرار دارند:
- برد حس گر
- برد غیرمتمرکز
- کیت تشخیص
- برد غیرمتمرکز
- کیت میکروکنترلر تنسور نسخه لایت
- برد آبی
- کیت توسعه یافته
- برد مدل
- برد Wio Terminal: ATSAMD51
- برد توسعه یافته هوش مصنوعی
- پلتفرم توسعه یافته نرم افزار
جستجو در مثالها
هر نمونه برنامه بر روی Github حاوی یک فایل README.md است که در آن توضیح داده شده چگونه میتوان بر روی پلتفرم قابل پشتیبانی اجرا شود. همانطور که در زیر آورده شده است، برخی از نمونهها دارای آموزشهای end_to_end با استفاده از یک چارچوب خاص هستند:
- Hello World : اصول استفاده از تنسورفلولایت را نمایش می دهد.
- Micro speech : برای تشخیص کلمه “بله” یا “خیر” با استفاده از یک میکروفون صدا را ضبط می کند.
- Magic wand : دادههای شتاب سنج را برای سه حرکت فیزیکی مختلف ذخیره و کلاس بندی میکند.
- Person detection : دادههای دوربین را با استفاده از یک سنسور تصویر ضبط و سپس برای تشخیص عدم حضور یا حضور شخص از آن استفاده میکند.
گردش کار
گامهای مورد نیاز برای قرار دادن و اجرای یک مدل تنسورفلو بر روی یک میکروکنترلر:
1- آموزش یک مدل:
- یک مدل متناسب با دستگاه مورد نظر را ساخته که شامل عملیات های پشتیبانی (supported operations) شده باشد.
- با استفاده از یک مبدل تنسورفلو لایت (TensorFlow Lite converter) این مدل را به مدل تنسورفلو نسخه لایت تبدیل کنید.
- با استفاده از ابزارهای استاندارد (standard tools) تنسورفلو بر روی حافظه فقط خواندنی دستگاه به صورت آرایههای C بایت تبدیل و ذخیره کنید.
2- نتیجه را بر روی دستگاه با استفاده از کتابخانه های C++ (C++ library) استنتاج و نتایج را پردازش کنید.
محدودیتها
نسخه لایت تنسورفلو برای میکروکنترلرها برای محدودیتهای خاص و توسعه میکروکنترلرها طراحی شده است. اگر شما بر روی ادوات قدرتمندتری کار می کنید (به عنوان نمونه دستگاه لینوکس امبدد مثل رزبری پای)، ممکن است چارچوب تنسورفلولایت برای پیاده سازی راحتتر باشد.
محدودیتهایی که باید در نظر گرفته شود:
- پشتیبانی از زیرمجموعه عملیاتهای محدود (limited subset) تنسورفلولایت
- پشتیبانی از مجموعه محدودی از دستگاهها
- رابط برنامهنویسی اپلیکیشن (API) سطح پایین ++C که نیاز به مدیریت حافظه به صورت غیر خودکار دارد.
- آموزش مدلها روی دستگاه (on device) غیر قابل پشتیبانی است.
مراحل بعدی
- به منظور استفاده از برنامههای نمونه با میکروکنترلرها شروع به کار Get started with) (microcontrollers کنید و نحوه استفاده از API را بیاموزید.
- کتابخانه ++C را بیاموزید (Understand the C++ library) تا نحوهی استفاده از کتابخانه را در پروژه خود درک کنید.
کلیدواژگان
تنسورفلو لایت چیست به زبان ساده | tensorflow lite چیست | تنسورفلولایت چیست | کتابخانه تنسورفلو چیست | درباره تنسورفلو لایت | درباره ی تنسورفلو لایت | محدودیت تنسورفلو لایت | محدودیت تنسورفلو لایت برای میکذوکنترلرها
منبع
tensorflow-lite-for-microcontrollers