tensorflow:: ops:: QuantizeAndDequantizeV2

#include <array_ops.h>

מבצע קוונטיזציה ואז דה-קוונטיזציה של טנזור.

תַקצִיר

פעולה זו מדמה את אובדן הדיוק מהמעבר הקדמי הכמותי:

  1. כימות הטנזור למספרי נקודה קבועה, אשר צריכים להתאים לשיטת הכימות היעד כאשר היא משמשת להסקה.
  2. דה-קוונטינג שלו חזרה למספרים צפה עבור הפעולות הבאות, סביר להניח ש-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
)