TensorFlow Lite

TensorFlow Lite היא קבוצת כלים שמאפשרת למפתחים להפעיל את המודלים שלהם בנייד, במכשירים מוטמעים ובמכשירים קצה, ומאפשרת למידת מכונה במכשיר.

תכונות עיקריות

  • אופטימיזציה ללמידת מכונה במכשיר על ידי טיפול ב-5 מגבלות עיקריות: זמן אחזור (אין הלוך ושוב לשרת), פרטיות (אין צורך במידע אישי מהמכשיר), קישוריות (לא נדרש קישוריות אינטרנט), גודל (מודל בינארי וגודל בינארי מופחת) וצריכת חשמל (הסקת מסקנות יעילה והיעדר חיבורי רשת).
  • תמיכה במספר פלטפורמות, שכוללת מכשירי Android ו-iOS, Linux מוטמע ומיקרו-בקרים.
  • תמיכה במגוון שפות, כולל Java, Swift, Objective-C, C++ ו-Python.
  • ביצועים גבוהים, עם שיפור מהירות באמצעות חומרה ואופטימיזציה של מודלים.

זרימת עבודה של פיתוח

במדריך הבא מתואר כל שלב בתהליך העבודה, כולל קישורים להוראות נוספות:

‫1. יצירת מודל TensorFlow Lite

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

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

אפשר ליצור מודל TensorFlow Lite בדרכים הבאות:

  • שימוש במודל TensorFlow Lite קיים: כדאי לעיין בדוגמאות ל-TensorFlow Lite כדי לבחור דגם קיים. מודלים יכולים להכיל מטא-נתונים, אבל לא בהכרח.

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

2. הרצת הסקת

הֶקֵּשׁ היא תהליך הביצוע של מודל TensorFlow Lite במכשיר כדי ליצור חיזויים על סמך נתוני קלט. אפשר להריץ הסקת מסקנות בדרכים הבאות, בהתאם לסוג המודל:

  • מודלים ללא מטא-נתונים: יש להשתמש ב-API של TensorFlow Lite Translate. נתמכת במגוון פלטפורמות ושפות, כמו Java, Swift, C++ , Objective-C ו-Python.

  • מודלים עם מטא-נתונים: אתם יכולים ליצור צינורות הסקת מסקנות בהתאמה אישית באמצעות ספריית התמיכה של TensorFlow Lite. במכשירי Android, משתמשים יכולים ליצור קובצי wrapper של קוד באופן אוטומטי באמצעות Android Studio ML Model Binding או TensorFlow Lite Code Generator. התמיכה נתמכת רק ב-Java (Android), בזמן ש-Swift (iOS) ו-C++ נמצאים בתהליך עבודה.

במכשירי Android ו-iOS אפשר לשפר את הביצועים באמצעות שיפור המהירות באמצעות חומרה. בכל אחת מהפלטפורמות אפשר להשתמש ב-GPU Delegate, וב-iOS אפשר להשתמש ב-Core ML Delegate. כדי להוסיף תמיכה במאיץ חומרה חדשים, תוכלו להגדיר משתמש אחר להעניק לו גישה.

אני רוצה לנסות

בהתאם למכשיר היעד שלך, אפשר להיעזר במדריכים הבאים:

מגבלות טכניות

  • את כל המודלים של TensorFlow אי אפשר להמיר למודלים של TensorFlow Lite. מידע נוסף זמין במאמר תאימות לאופרטור.