המודלים של למידת המכונה (ML) שבהם אתם משתמשים ב-TensorFlow Lite נוצרו ואומנו במקור באמצעות ספריות וכלים בסיסיים של TensorFlow. אחרי שיוצרים מודל באמצעות TensorFlow Core, אפשר להמיר אותו לפורמט של מודל למידת מכונה (ML) קטן ויעיל יותר, שנקרא מודל TensorFlow Lite. בקטע הזה תמצאו הנחיות להמרת המודלים של TensorFlow לפורמט של TensorFlow Lite.
זרימת עבודה של המרה
המרת מודלים של TensorFlow לפורמט TensorFlow Lite עשויה להימשך כמה נתיבים, בהתאם לתוכן של מודל ה-ML. בשלב הראשון של התהליך, יש להעריך את המודל כדי לקבוע אם ניתן להמיר אותו באופן ישיר. ההערכה הזו קובעת אם התוכן של המודל נתמך על ידי סביבות זמן הריצה הסטנדרטיות של TensorFlow Lite, בהתאם לפעולות ב-TensorFlow שמשמשות אותו. אם המודל משתמש בפעולות מעבר לקבוצה הנתמכת, תוכלו להגדיר מחדש את הקוד של המודל או להשתמש בטכניקות המרה מתקדמות.
בתרשים הבא מוצגים השלבים הכלליים בהמרת מודל.
איור 1. תהליך עבודה של המרה ב-TensorFlow Lite.
בקטעים הבאים מפורט תהליך ההערכה וההמרה של מודלים לשימוש ב-TensorFlow Lite.
פורמטים של מודלים של קלט
אפשר להשתמש בממיר עם הפורמטים הבאים של מודלים לקלט:
- SavedModel (מומלץ): מודל TensorFlow שנשמר כקבוצת קבצים בדיסק.
- מודל Keras: מודל שנוצר באמצעות Keras API ברמה גבוהה.
- פורמט Keras H5: חלופה קלת-משקל לפורמט של SaveModel, שנתמך ב-Keras API.
- מודלים שנבנו מפונקציות קונקרטיות: מודל שנוצר באמצעות TensorFlow API ברמה נמוכה.
אפשר לשמור גם את המודלים של פונקציות 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 סימונים (או אפשרויות) עיקריים שמתאימים אישית את ההמרה למודל שלכם:
- דגלים לתאימות מאפשרים לציין אם ההמרה צריכה לאפשר אופרטורים מותאמים אישית.
- באנרים לאופטימיזציה מאפשרים לציין את סוג האופטימיזציה שתחול במהלך ההמרה. שיטת האופטימיזציה הנפוצה ביותר היא קווניטיזציה אחרי אימון.
- דגלים של מטא-נתונים מאפשרים להוסיף מטא-נתונים למודל שהומר כדי להקל על יצירת קוד wrapper ספציפי לפלטפורמה כשפורסים מודלים במכשירים.
אפשר להמיר את המודל באמצעות Python API או כלי שורת הפקודה. במדריך המרת מודל TF תוכלו למצוא הוראות מפורטות להפעלת הממיר במודל.
בדרך כלל, ממירים את המודל לסביבת זמן הריצה הרגילה של TensorFlow Lite או לסביבת זמן הריצה של Google Play Services ל-TensorFlow Lite (בטא). בחלק מהתרחישים המתקדמים נדרשת התאמה אישית של סביבת זמן הריצה של המודל. בעקבות זאת, נדרשים שלבים נוספים בתהליך ההמרה. להנחיות נוספות, קראו את הקטע סביבת זמן ריצה מתקדמת בסקירה הכללית של Android.
המרה מתקדמת
אם נתקלתם בשגיאות בזמן הפעלת הממיר במודל, סביר להניח שיש לכם בעיית תאימות של האופרטור. לא כל הפעולות ב-TensorFlow נתמכות על ידי TensorFlow Lite. אפשר לעקוף את הבעיות האלה באמצעות ארגון מחדש של המודל, או להשתמש באפשרויות המרה מתקדמות שמאפשרות ליצור מודל בפורמט TensorFlow Lite שעבר שינוי וסביבת זמן ריצה מותאמת אישית למודל הזה.
- בסקירה הכללית על תאימות מודלים תוכלו לקרוא מידע נוסף על השיקולים בנוגע לתאימות של דגמים ב-TensorFlow וב-TensorFlow Lite.
- הנושאים בסקירה הכללית בנושא תאימות של מודלים כוללים שיטות מתקדמות לסידור מחדש של המודל, כמו המדריך בחירת אופרטורים.
- לרשימה המלאה של הפעולות והמגבלות, ניתן לעיין בדף TensorFlow Lite Ops.
השלבים הבאים
- כדאי לעיין במדריך בנושא המרת מודלים של TF כדי להתחיל במהירות להמיר את המודל.
- קראו את הסקירה הכללית על אופטימיזציה כדי להבין איך לבצע אופטימיזציה של המודל המומר באמצעות שיטות כמו קוניטזציה אחרי האימון.
- ראו את המאמר סקירה כללית בנושא הוספת מטא-נתונים כדי ללמוד איך להוסיף מטא-נתונים למודלים. המטא-נתונים מספקים שימוש אחר בתיאור של המודל, ובמידע שמחוללי קוד יכולים להשתמש בהם.