מתוחזק על ידי Arm ML Tooling
מסמך זה מספק סקירה כללית על צבירת משקל כדי לעזור לך לקבוע כיצד הוא מתאים למקרה השימוש שלך.
- כדי לצלול ישר לתוך דוגמה מקצה לקצה, עיין בדוגמה של אשכול משקל .
- כדי למצוא במהירות את ממשקי ה-API הדרושים לך למקרה השימוש שלך, עיין במדריך המקיף של אשכול משקל .
סקירה כללית
אשכול, או שיתוף משקל, מפחית את מספר ערכי המשקל הייחודיים במודל, מה שמוביל להטבות לפריסה. תחילה הוא מקבץ את המשקולות של כל שכבה ל- 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.
- הפוך את מודל Keras בסידרה לקובץ .h5
- המר את קובץ ה-.h5 ל-.tflite באמצעות
TFLiteConverter.from_keras_model_file()
- דחוס את קובץ ה-.tflite ל-zip
דוגמאות
בנוסף לאשכול המשקל בדוגמה של Keras , ראה את הדוגמאות הבאות:
- רכז את המשקלים של מודל CNN שאומן במערך הנתונים של סיווג הספרות בכתב יד של MNIST: קוד
יישום אשכול המשקל מבוסס על נייר דחיסה עמוקה: דחיסה של רשתות עצביות עמוקות עם גיזום, קוונטיזציה מאומנת וקידוד האפמן . ראה פרק 3, שכותרתו קוונטיזציה מאומנת וחלוקת משקל .