שאלות נפוצות

אם אינך מוצא תשובה לשאלתך כאן, אנא עיין בתיעוד המפורט שלנו עבור הנושא או הגש בעיית GitHub .

המרת דגם

אילו פורמטים נתמכים להמרה מ-TensorFlow ל-TensorFlow Lite?

הפורמטים הנתמכים מפורטים כאן

מדוע חלק מהפעולות אינן מיושמות ב-TensorFlow Lite?

על מנת לשמור על TFLite קל משקל, רק אופרטורי TF מסוימים (הרשומים ברשימת ההיתרים ) נתמכים ב-TFLite.

למה הדגם שלי לא ממיר?

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

לבעיות המרה שאינן קשורות לפעולות חסרות או לפעולות זרימת בקרה, חפש בבעיות GitHub שלנו או שלח הודעה חדשה .

איך אני בודק שדגם TensorFlow Lite מתנהג כמו דגם TensorFlow המקורי?

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

כיצד אוכל לקבוע את הכניסות/יציאות עבור מאגר פרוטוקול GraphDef?

הדרך הקלה ביותר לבדוק גרף מקובץ .pb היא להשתמש ב-Netron , מציג קוד פתוח עבור מודלים של למידת מכונה.

אם Netron לא יכול לפתוח את הגרף, אתה יכול לנסות את הכלי summarize_graph .

אם הכלי summarize_graph מניב שגיאה, אתה יכול לדמיין את ה-GraphDef עם TensorBoard ולחפש את הקלט והפלטים בגרף. כדי לדמיין קובץ .pb , השתמש בסקריפט import_pb_to_tensorboard.py כמו להלן:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

כיצד אוכל לבדוק קובץ .tflite ?

Netron היא הדרך הקלה ביותר לדמיין מודל TensorFlow Lite.

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

אם אתה משתמש ב-TF 2.5 או גרסה מאוחרת יותר

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

אחרת, אתה יכול להריץ את הסקריפט הזה עם Bazel

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

אופטימיזציה

כיצד אוכל להקטין את הגודל של דגם TensorFlow Lite שהומר שלי?

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

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

להבנה מעמיקה יותר של שיטות אופטימיזציה שונות, עיין באופטימיזציה של מודלים .

כיצד אוכל לייעל את ביצועי TensorFlow Lite עבור משימת למידת המכונה שלי?

התהליך ברמה גבוהה למיטוב ביצועי TensorFlow Lite נראה בערך כך:

  • ודא שיש לך את הדגם המתאים למשימה. לסיווג תמונות, בדוק את TensorFlow Hub .
  • כוונן את מספר השרשורים. מפעילי TensorFlow Lite רבים תומכים בגרעין ריבוי הליכי. אתה יכול להשתמש SetNumThreads() ב- C++ API כדי לעשות זאת. עם זאת, הגדלת חוטים גורמת לשונות ביצועים בהתאם לסביבה.
  • השתמש במאיצי חומרה. TensorFlow Lite תומך בהאצת מודל עבור חומרה ספציפית באמצעות נציגים. עיין במדריך הנציגים שלנו למידע על אילו מאיצים נתמכים וכיצד להשתמש בהם עם הדגם שלך במכשיר.
  • מודל פרופיל (מתקדם). לכלי המידוד Tensorflow Lite יש פרופיילר מובנה שיכול להציג נתונים סטטיסטיים לכל מפעיל. אם אתה יודע איך אתה יכול לייעל את הביצועים של מפעיל עבור הפלטפורמה הספציפית שלך, אתה יכול ליישם אופרטור מותאם אישית .

לדיון מעמיק יותר על איך לייעל את הביצועים, עיין בשיטות מומלצות .