סקירה כללית של המרות לפי מודל

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

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

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

בתרשים הבא מוצגים השלבים הכלליים בהמרת מודל.

תהליך העבודה של ההמרות ב-TFLite

איור 1. תהליך עבודה של המרה ב-TensorFlow Lite.

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

פורמטים של מודלים של קלט

אפשר להשתמש בממיר עם הפורמטים הבאים של מודלים לקלט:

אפשר לשמור גם את המודלים של פונקציות Keras וגם את המודלים הממשיים כ-SavedModel, ולהמיר באמצעות הנתיב המומלץ.

אם יש לכם דגם Jax, אתם יכולים להשתמש ב-API TFLiteConverter.experimental_from_jax כדי להמיר אותו לפורמט TensorFlow Lite. שימו לב שה-API הזה עשוי להשתנות כשהוא במצב ניסיוני.

הערכת המרות

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

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

המרה לפי מודל

הממיר TensorFlow Lite משתמש במודל TensorFlow ויוצר מודל TensorFlow Lite (פורמט FlatBuffer שעבר אופטימיזציה שמזוהה באמצעות סיומת הקובץ .tflite). אתם יכולים לטעון SavedModel או להמיר ישירות מודל שנוצר בקוד.

הממיר משתמש ב-3 סימונים (או אפשרויות) עיקריים שמתאימים אישית את ההמרה למודל שלכם:

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

אפשר להמיר את המודל באמצעות Python API או כלי שורת הפקודה. במדריך המרת מודל TF תוכלו למצוא הוראות מפורטות להפעלת הממיר במודל.

בדרך כלל, ממירים את המודל לסביבת זמן הריצה הרגילה של TensorFlow Lite או לסביבת זמן הריצה של Google Play Services ל-TensorFlow Lite (בטא). בחלק מהתרחישים המתקדמים נדרשת התאמה אישית של סביבת זמן הריצה של המודל. בעקבות זאת, נדרשים שלבים נוספים בתהליך ההמרה. להנחיות נוספות, קראו את הקטע סביבת זמן ריצה מתקדמת בסקירה הכללית של Android.

המרה מתקדמת

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

השלבים הבאים