tensorflow:: ops:: QuantizeAndDequantizeV2
#include <array_ops.h>מבצע קוונטיזציה ואז דה-קוונטיזציה של טנזור.
תַקצִיר
פעולה זו מדמה את אובדן הדיוק מהמעבר הקדמי הכמותי:
- כימות הטנזור למספרי נקודה קבועה, אשר צריכים להתאים לשיטת הכימות היעד כאשר היא משמשת להסקה.
- דה-קוונטינג שלו חזרה למספרים צפה עבור הפעולות הבאות, סביר להניח ש-matmul.
ישנן דרכים שונות לכמת. גרסה זו משתמשת רק בקנה מידה, כך ש-0.0 מתפזר ל-0.
מתוך 'num_bits' שצוין בסוג הפלט הכמותי, הוא קובע ערכים כמותיים מינימליים ומקסימליים הניתנים לייצוג.
לְמָשָׁל
- [-128, 127] עבור חתום, num_bits = 8, או
- [0, 255] עבור לא חתום, num_bits = 8.
אם range_given == False, ה-input_min, input_max ההתחלתיים ייקבעו אוטומטית כערכי המינימום והמקסימום בטנזור הקלט, אחרת הערכים שצוינו של input_min, input_max ייעשה בהם שימוש.
הערה: אם ה-input_min וה-input_max מצוינים, הם אינם צריכים להיות שווים לערכי המינימום והמקסימום בפועל בטנזור. לדוגמה, במקרים מסוימים ייתכן שיהיה מועיל לציין ערכים אלה כך שהקיצוניים בעלי ההסתברות הנמוכה של התפלגות הקלט ייחתכו.
פעולה זו קובעת את scale_factor המקסימלי שימפה את הטווח ההתחלתי [input_min, input_max] לטווח הנמצא בטווח הכמותי הניתן לייצוג.
הוא קובע את קנה המידה מאחד מ- input_min ו- input_max, ולאחר מכן מעדכן את השני כדי למקסם את הטווח הניתן לייצוג.
לְמָשָׁל
- אם הפלט חתום, num_bits = 8, [input_min, input_max] = [-10.0, 5.0]: הוא ישתמש ב-scale_factor של -128 / -10.0 = 12.8. במקרה זה, הוא יעדכן את input_max ל-127 / 12.8 = 9.921875.
- אם הפלט חתום, num_bits = 8, [input_min, input_max] = [-10.0, 10.0]: הוא ישתמש ב-scale_factor של 127 / 10.0 = 12.7. במקרה זה, הוא יעודכן את input_min ל-128.0 / 12.7 = -10.07874.
- אם הפלט אינו חתום, הפונקציה input_min נאלצת להיות 0, ורק הפונקציה input_max שצוינה משמשת.
לאחר קביעת ה-scale_factor ועדכון טווח הקלט, הוא מחיל את הדברים הבאים על כל ערך בטנזור 'הקלט'.
פלט = עגול(clamp(value, input_min, input_max) * scale_factor) / scale_factor.
פונקציית ה-round הנ"ל מעגלת את הערך בהתבסס על ה- round_mode הנתון.
טיעונים:
- היקף: אובייקט היקף
- קלט: טנזור לכמת ולאחר מכן לבטל את הכימות.
- input_min: אם
range_given == True, ערך זה מציין את ערך הקלט המינימלי שיש לייצג, אחרת הוא נקבע מהערך המינימלי של טנזורinput. - input_max: אם
range_given == True, ערך זה מציין את ערך הקלט המקסימלי שיש לייצג, אחרת הוא נקבע מהערך המקסימלי של טנזורinput.
מאפיינים אופציונליים (ראה Attrs ):
- signed_input: האם הכימות היא חתומה או לא חתומה. (למעשה, פרמטר זה היה צריך להיקרא
signed_output) - num_bits: רוחב הסיביות של הכימות.
- range_given: האם הטווח נתון או שיש לקבוע אותו מטנזור
input. - round_mode: התכונה 'round_mode' קובעת איזה אלגוריתם עיגול ושבירת שוויון ייעשה בו שימוש בעת עיגול ערכים צפים למקבילים הכמותיים שלהם. מצבי העיגול הבאים נתמכים כעת:
- HALF_TO_EVEN: זהו מצב הסיבוב המוגדר כברירת מחדל.
- HALF_UP: עיגול לכיוון החיובי. במצב זה 7.5 עיגולים עד 8 ו-7.5- עיגולים עד 7-.
- טווח_צר: אם נכון, אז הערך המוחלט של הערך המינימלי הכמותי זהה לערך המקסימלי הכמותי, במקום גדול פי 1. כלומר, עבור כימות של 8 סיביות, הערך המינימלי הוא -127 במקום -128.
- ציר: אם צוין, ציר זה מטופל כציר ערוץ או פרוסה, וטווח כימות נפרד משמש עבור כל ערוץ או פרוסה לאורך ציר זה.
החזרות:
-
Output: טנזור הפלט.
בנאים והורסים | |
|---|---|
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max) | |
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs) |
מאפיינים ציבוריים | |
|---|---|
operation | |
output | |
תפקידים ציבוריים | |
|---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const | |
פונקציות סטטיות ציבוריות | |
|---|---|
Axis (int64 x) | |
NarrowRange (bool x) | |
NumBits (int64 x) | |
RangeGiven (bool x) | |
RoundMode (StringPiece x) | |
SignedInput (bool x) | |
מבנים | |
|---|---|
| tensorflow:: ops:: QuantizeAndDequantizeV2:: Attrs | קובעי מאפיינים אופציונליים עבור QuantizeAndDequantizeV2 . |
מאפיינים ציבוריים
מִבצָע
Operation operation
תְפוּקָה
::tensorflow::Output output
תפקידים ציבוריים
קוונטיזציה ודקוונטיזציה V2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max )
קוונטיזציה ודקוונטיזציה V2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs )
צוֹמֶת
::tensorflow::Node * node() const
אופרטור::tensorflow::קלט
operator::tensorflow::Input() const
אופרטור::tensorflow::פלט
operator::tensorflow::Output() const
פונקציות סטטיות ציבוריות
צִיר
Attrs Axis( int64 x )
טווח צר
Attrs NarrowRange( bool x )
מספר ביט
Attrs NumBits( int64 x )
טווח נתון
Attrs RangeGiven( bool x )
מצב עגול
Attrs RoundMode( StringPiece x )
קלט חתום
Attrs SignedInput( bool x )
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2026-11-05 (שעון UTC).