LiteRT למיקרו-בקרים

LiteRT למיקרו-בקרים נועד להריץ מודלים של למידת מכונה במיקרו-בקרים ובמכשירים אחרים עם זיכרון בנפח כמה קילו-בייט בלבד. סביבת זמן הריצה ליבה מתאימה בגודל של 16KB ב- Arm Cortex M3 ויכולה להריץ הרבה למשימות ספציפיות. היא לא דורשת תמיכה של מערכת ההפעלה, כל תקן C או C++ או הקצאת זיכרון דינמית.

למה חשוב להשתמש במיקרו-בקרים

מיקרו-בקרים הם בדרך כלל מכשירי מחשוב קטנים בעלי מתח נמוך שמוטמעות בחומרה שדורשת חישוב בסיסי. באמצעות שימוש במכונה של מיקרו-בקרים זעירים, אנחנו יכולים להגדיל את הבינה של מיליארדי המכשירים שבהם אנחנו משתמשים בחיים, כולל מכשירי חשמל לבית דברים של מכשירים, בלי להסתמך על חומרה יקרה או על אינטרנט אמין חיבורים, שבדרך כלל כפופים למגבלות רוחב פס וחשמל יובילו לזמן אחזור ארוך. כך אפשר גם לשמור על הפרטיות, כי אין נתונים יוצא מהמכשיר. דמיינו מכשירי חשמל חכמים שיכולים להסתגל לחיי היום-יום חיישנים תעשייתיים שגרתיים וחכמים שמבינים את ההבדל בין בעיות תפעול רגילים וצעצועים קסומים שיכולים לעזור לילדים ללמוד בכיף ועל דרכים מהנות.

פלטפורמות נתמכות

LiteRT למיקרו-בקרים נכתב ב-C++ 17 ודורש 32 סיביות הפלטפורמה. הוא נבדק בצורה קפדנית על ידי מעבדים רבים סדרת Arm Cortex-M הועברו לארכיטקטורות אחרות כולל ESP32. תהיה זמינה כספריית Arduino. הוא יכול גם ליצור פרויקטים בסביבות פיתוח כמו Mbed. זהו קוד פתוח וניתן לכלול אותו בכל פרויקט של C++ 17.

יש תמיכה בלוחות הפיתוח הבאים:

לצפייה בדוגמאות

כל אפליקציה לדוגמה זמינה GitHub יש בו קובץ README.md שמסביר איך אפשר לפרוס אותו פלטפורמות שונות. בחלק מהדוגמאות יש גם מדריכים מקצה לקצה שמבוססים על בפלטפורמה, כפי שמתואר בהמשך:

תהליך עבודה

צריך לבצע את השלבים הבאים כדי לפרוס ולהריץ מודל TensorFlow מיקרו-בקר:

  1. אימון מודל:
    • יוצרים מודל TensorFlow קטן שיכול להתאים למכשיר היעד שלכם מכיל פעולות נתמכות.
    • המרה למודל LiteRT באמצעות ממיר LiteRT.
    • המרה למערך בייט C באמצעות כלים סטנדרטיים כדי לאחסן אותו זיכרון תוכנית לקריאה בלבד במכשיר.
  2. מריצים מסקנות במכשיר באמצעות ספריית C++ ומעבדים בין התוצאות.

מגבלות

LiteRT למיקרו-בקרים מתוכנן למגבלות הספציפיות ופיתוח מיקרו-בקרים. אם אתם עובדים במכשירים חזקים יותר (עבור או מכשיר Linux מוטמע כמו Raspberry Pi), יכול להיות שיהיה קל יותר לשלב את framework של LiteRT.

צריך להביא בחשבון את המגבלות הבאות:

  • תמיכה בקבוצת משנה מוגבלת של פעולות TensorFlow
  • תמיכה במספר מוגבל של מכשירים
  • API של C++ ברמה נמוכה שמחייב ניהול זיכרון ידני
  • אין תמיכה באימון במכשיר

השלבים הבאים