tensorflow:: אופס:: QuantizeAndDequantizeV2
#include <array_ops.h>
קוונט ואז מנטרל טנזור.
תַקצִיר
פעולה זו מדמה את אובדן הדיוק מהמעבר המדויק קדימה:
- כימות הטנזור למספרי נקודות קבועות, שאמורות להתאים לשיטת כימת היעד כאשר היא משמשת בהסקת מסקנות.
- נטרול אותו בחזרה למספרי נקודה צפה עבור הפעולות הבאות, ככל הנראה matmul.
ישנן דרכים שונות לכימות. גרסה זו משתמשת רק בקנה מידה, אז 0.0 ממפה ל-0.
מתוך ה-'num_bits' שצוינו בסוג הפלט המכומתי, הוא קובע ערכים קוונטיים מינימליים ומקסימליים שניתנים לייצוג.
לְמָשָׁל
- [-128, 127] עבור חתום, num_bits = 8, או
- [0, 255] עבור unsigned, 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 = -740.
- אם הפלט אינו חתום, input_min נאלץ להיות 0, ורק ה-input_max שצוין משמש.
לאחר קביעת scale_factor ועדכון טווח הקלט, הוא מחיל את הדברים הבאים על כל ערך בטנזור 'קלט'.
פלט = round(clamp(value, input_min, input_max) * scale_factor) / scale_factor.
פונקציית הסיבוב לעיל מעגלת את הערך על סמך מצב הסיבוב הנתון.
טיעונים:
- scope: אובייקט Scope
- קלט: טנסור לכימות ולאחר מכן לנטרל.
- 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: זהו ברירת המחדל של round_mode.
- HALF_UP: סיבוב לכיוון חיובי. במצב זה 7.5 סיבובים עד 8 ו-7.5 סיבובים עד -7.
- narrow_range: אם True, אז הערך המוחלט של ערך המינימום המכומתי זהה לערך המקסימלי המכומתי, במקום 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 |
פונקציות סטטיות ציבוריות | |
---|---|
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
תפקידים ציבוריים
QuantizeAndDequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max )
QuantizeAndDequantizeV2
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 NarrowRange( bool x )
NumBits
Attrs NumBits( int64 x )
RangeGiven
Attrs RangeGiven( bool x )
RoundMode
Attrs RoundMode( StringPiece x )
קלט חתום
Attrs SignedInput( bool x )
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2024-11-25 (שעון UTC).