דף זה תורגם על ידי Cloud Translation API.
Switch to English

אימון קוונטיזציה מודע

מתוחזק ע"י TensorFlow דגם אופטימיזציה

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

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

סקירה כללית

קוונטיזציה הכשרה מודעת מחקה קוונטיזציה היקש-זמן, יצירת מודל כלים במורד ישתמשו כדי לייצר מודלים בדידים למעשה. המודלים הבדידים להשתמש דיוק תחתון (למשל 8 סיבי במקום לצוף 32 סיבי), מה שמוביל הטבות במהלך פריסה.

לפרוס עם קוונטיזציה

קוונטיזציה מביא שיפורים באמצעות דחיסת דגם והפחתת חביון. עם המחדל API, שהפסיכולוגים גודל המודל ידי 4x, ואנחנו בדרך כלל רואים בין 1.5 - 4x שיפורים חביון CPU ב Backends נבדק. בסופו של דבר, ניתן לראות שיפורים חביון על מאיצי למידת מכונה תואמים, כגון EdgeTPU ו NNAPI.

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

ניסוי עם קוונטיזציה וחומרה הקשורים

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

APIs ספציפי לתצורה זה כפוף ניסיוני ולא תאימות לאחור.

תאימות API

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

  • בניין דגם: tf.keras עם רק סדרתית ומודלים פונקציונאלי.
  • גרסאות TensorFlow: 2.x TF עבור TF-לילי.
  • מצב ביצוע TensorFlow: ביצוע להוט

זה על מפת הדרכים שלנו להוסיף תמיכה בתחומים הבאים:

  • בניין דגם: להבהיר כיצד מודלי Subclassed מוגבלים ללא תמיכה
  • אימון מבוזרת: tf.distribute

מטריקס תמיכה כללית

תמיכה זמינה בתחומים הבאים:

  • כיסוי דגם: מודלים באמצעות שכבות ברשימה לבנות , BatchNormalization כאשר מסקנה הוא שכבות Conv2D ו DepthwiseConv2D, ובמקרים מוגבלים, Concat .
  • האצת חומרה: המחדל API שלנו תואמים האצה על EdgeTPU, NNAPI, ו Backends TFLite, בין היתר. ראה אזהרה בעניין מפת הדרכים.
  • לפרוס עם קוונטיזציה: קוונטיזציה לכל ציר רק עבור שכבות קונבולוציה, לא קוונטיזציה לכל מותח, נתמך כרגע.

זה על מפת הדרכים שלנו להוסיף תמיכה בתחומים הבאים:

  • כיסוי דגם: הוארך לכלול RNN / LSTMs ותמיכה CONCAT בכלל.
  • האצת חומרה: להבטיח את ממיר TFLite יכול לייצר מודלים מלאים שלמים. ראה בעניין זה לפרטים.
  • ניסוי עם מקרי שימוש קוונטיזציה:
    • הניסוי עם אלגוריתמים קוונטיזציה כי שכבות תוחלת Keras או לדרוש את הצעד אימונים.
    • לייצב APIs.

תוצאות

סיווג תמונה עם כלים

דֶגֶם ללא בדיד Top-1 דיוק 8 סיביות דיוק בדיד
MobilenetV1 224 71.03% 71.06%
Resnet v1 50 76.3% 76.1%
MobilenetV2 224 70.77% 70.01%

המודלים נבדקו על אימג'נט ומוערכת בשני TensorFlow ו TFLite.

סיווג תמונה עבור טכניקה

דֶגֶם ללא בדיד Top-1 דיוק דיוק 8-Bit בדיד
Nasnet-Mobile 74% 73%
Resnet-v2 50 75.6% 75%

המודלים נבדקו על אימג'נט ומוערכת בשני TensorFlow ו TFLite.

דוגמאות

בנוסף למשל הכשרה מודע קוונטיזציה , לראות את הדוגמאות הבאות:

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

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