TensorFlow Lite עבור מיקרו-בקרים

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

מדוע מיקרו-בקרים חשובים

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

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

TensorFlow Lite for Microcontrollers כתוב ב-C++ 11 ודורש פלטפורמת 32 סיביות. הוא נבדק בהרחבה עם מעבדים רבים המבוססים על ארכיטקטורת Arm Cortex-M Series , והועבר לארכיטקטורות אחרות כולל ESP32 . המסגרת זמינה כספריית Arduino. זה יכול גם ליצור פרויקטים עבור סביבות פיתוח כגון Mbed. זה קוד פתוח וניתן לכלול אותו בכל פרויקט C++ 11.

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

חקור את הדוגמאות

כל יישום לדוגמה נמצא ב- Github ויש לו קובץ README.md המסביר כיצד ניתן לפרוס אותו לפלטפורמות הנתמכות שלו. לכמה דוגמאות יש גם הדרכות מקצה לקצה באמצעות פלטפורמה ספציפית, כפי שניתן להלן:

זרימת עבודה

השלבים הבאים נדרשים כדי לפרוס ולהפעיל מודל TensorFlow על מיקרו-בקר:

  1. אימון דגם :
  2. הפעל מסקנות במכשיר באמצעות ספריית C++ ועבד את התוצאות.

מגבלות

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

יש לקחת בחשבון את המגבלות הבאות:

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

הצעדים הבאים