יום הקהילה 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

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

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 NarrowRange(
  bool x
)

NumBits

Attrs NumBits(
  int64 x
)

RangeGiven

Attrs RangeGiven(
  bool x
)

RoundMode

Attrs RoundMode(
  StringPiece x
)

קלט חתום

Attrs SignedInput(
  bool x
)