יום הקהילה ML הוא 9 בנובמבר! הצטרפו אלינו עדכונים מ- TensorFlow, JAX, ועוד למידע נוסף

זרימת טנסור :: אופ :: QuantizeAndDequantizeV2

#include <array_ops.h>

כימות ואז מפחית טנזור.

סיכום

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

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

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

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

פלט = עגול (מהדק (value, input_min, input_max) * scale_factor) / scale_factor.

פונקציית הסיבוב שלעיל מעגלת את הערך על סמך מצב העגול הנתון.

טענות:

  • היקף: אובייקט Scope
  • קלט: טנסור לכמת ואז לנטרל כמות.
  • input_min: אם range_given == True , זה מציין את ערך הקלט המינימלי שצריך להיות מיוצג, אחרת הוא נקבע לפי הערך המינימלי של טנסור input .
  • input_max: אם range_given == True , זה מציין את ערך הקלט המרבי שצריך לייצג, אחרת הוא נקבע מהערך המקסימלי של טנסור input .

תכונות אופציונליות (ראה Attrs ):

  • חתום_קלט: בין אם הכמות היא חתומה או לא חתומה. (למעשה פרמטר זה היה צריך להיקרא signed_output )
  • מספר_ביטים: רוחב הסיביות של הכימות.
  • טווח_מסור: האם הטווח ניתן או צריך להיקבע מתוך טנסור input .
  • round_mode: התכונה 'round_mode' שולטת באיזה אלגוריתם פריצת עניבה משמש בעת עיגול ערכי צף למקבילות הכמות שלהם. כרגע תומכים במצבי העיגול הבאים:
  • HALF_TO_EVEN: זהו מצב העגול המוגדר כברירת מחדל.
  • HALF_UP: עגול לכיוון חיובי. במצב זה 7.5 סיבובים עד 8 ו -7.5 סיבובים עד -7.
  • narrow_range: אם נכון, הערך המוחלט של הערך המינימלי הכמותי זהה לערך המרבי הכמותי, במקום אחד גדול יותר. כלומר עבור כימות של 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

פונקציות ציבוריות

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 

אופרטור :: זורם טנסור :: קלט

 operator::tensorflow::Input() const 

אופרטור :: זרימת טנסור :: פלט

 operator::tensorflow::Output() const 

פונקציות סטטיות ציבוריות

צִיר

Attrs Axis(
  int64 x
)

טווח צר

Attrs NarrowRange(
  bool x
)

NumBits

Attrs NumBits(
  int64 x
)

RangeGiven

Attrs RangeGiven(
  bool x
)

RoundMode

Attrs RoundMode(
  StringPiece x
)

קלט חתום

Attrs SignedInput(
  bool x
)