סקירת המרות מודל

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

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

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

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

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

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

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

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

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

אתה יכול לשמור הן את מודל הפונקציות של Keras והן כ-SaveModel ולהמיר באמצעות הנתיב המומלץ.

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

הערכת המרה

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

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

המרת דגם

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

הממיר לוקח 3 דגלים עיקריים (או אפשרויות) המתאימים אישית את ההמרה לדגם שלך:

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

אתה יכול להמיר את המודל שלך באמצעות Python API או כלי שורת הפקודה . עיין במדריך דגמי Convert TF לקבלת הוראות שלב אחר שלב להפעלת הממיר בדגם שלך.

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

המרה מתקדמת

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

הצעדים הבאים

,

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

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

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

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

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

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

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

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

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

אתה יכול לשמור הן את מודל הפונקציות של Keras והן כ-SaveModel ולהמיר באמצעות הנתיב המומלץ.

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

הערכת המרה

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

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

המרת דגם

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

הממיר לוקח 3 דגלים עיקריים (או אפשרויות) המתאימים אישית את ההמרה לדגם שלך:

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

אתה יכול להמיר את המודל שלך באמצעות Python API או כלי שורת הפקודה . עיין במדריך דגמי Convert TF לקבלת הוראות שלב אחר שלב להפעלת הממיר בדגם שלך.

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

המרה מתקדמת

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

הצעדים הבאים