צבירת משקל

מתוחזק על ידי Arm ML Tooling

מסמך זה מספק סקירה כללית על צבירת משקל כדי לעזור לך לקבוע כיצד הוא מתאים למקרה השימוש שלך.

סקירה כללית

אשכול, או שיתוף משקל, מפחית את מספר ערכי המשקל הייחודיים במודל, מה שמוביל להטבות לפריסה. תחילה הוא מקבץ את המשקולות של כל שכבה ל- N אשכולות, ואז חולק את ערך המרכז של האשכול עבור כל המשקולות השייכות לאשכול.

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

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

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

מטריצת תאימות API

משתמשים יכולים להחיל אשכולות עם ממשקי ה-API הבאים:

  • בניית מודל: keras עם מודלים רצפים ופונקציונליים בלבד
  • גרסאות TensorFlow: TF 1.x עבור גרסאות 1.14+ ו-2.x.
    • tf.compat.v1 עם חבילת TF 2.X ו- tf.compat.v2 עם חבילת TF 1.X אינם נתמכים.
  • מצב ביצוע TensorFlow: גם גרף וגם להוט

תוצאות

סיווג תמונה

דֶגֶם מְקוֹרִי מקובצים
דיוק מוביל (%) גודל של ‎.tflite דחוס (MB) תְצוּרָה # של אשכולות דיוק מוביל (%) גודל של ‎.tflite דחוס (MB)
MobileNetV1 70.976 14.97
סלקטיבי (3 שכבות Conv2D האחרונות) 16, 16, 16 70.294 7.69
סלקטיבי (3 שכבות Conv2D האחרונות) 32, 32, 32 70.69 8.22
מלא (כל שכבות Conv2D) 32 69.4 4.43
MobileNetV2 71.778 12.38
סלקטיבי (3 שכבות Conv2D האחרונות) 16, 16, 16 70.742 6.68
סלקטיבי (3 שכבות Conv2D האחרונות) 32, 32, 32 70.926 7.03
מלא (כל שכבות Conv2D) 32 69.744 4.05

הדגמים הוכשרו ונבדקו ב-ImageNet.

איתור מילות מפתח

דֶגֶם מְקוֹרִי מקובצים
דיוק מוביל (%) גודל של ‎.tflite דחוס (MB) תְצוּרָה # של אשכולות דיוק מוביל (%) גודל של ‎.tflite דחוס (MB)
DS-CNN-L 95.233 1.46
מלא (כל שכבות Conv2D) 32 95.09 0.39
מלא (כל שכבות Conv2D) 8 94.272 0.27

הדגם הוכשר ונבדק ב-SpeechCommands v0.02.

  1. הפוך את מודל Keras בסידרה לקובץ .h5
  2. המר את קובץ ה-.h5 ל-.tflite באמצעות TFLiteConverter.from_keras_model_file()
  3. דחוס את קובץ ה-.tflite ל-zip

דוגמאות

בנוסף לאשכול המשקל בדוגמה של Keras , ראה את הדוגמאות הבאות:

  • רכז את המשקלים של מודל CNN שאומן במערך הנתונים של סיווג הספרות בכתב יד של MNIST: קוד

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