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

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

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

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

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

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

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

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

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

תהליך העבודה

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

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

הגבלות

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

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

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

השלבים הבאים