הפוך את טנסור 'הקלט' ל-float או bfloat16 Tensor.
[min_range, max_range] הם צפים סקלאריים המציינים את הטווח עבור הפלט. התכונה 'מצב' שולטת בדיוק באילו חישובים נעשה שימוש כדי להמיר את ערכי הציפה למקבילות הכמותיות שלהם.
במצב 'MIN_COMBINED', כל ערך של הטנזור יעבור את הפעולות הבאות:
if T == qint8: in[i] += (range(T) + 1)/ 2.0
out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
דוגמה למצב MIN_COMBINED
אם הקלט מגיע מ-QuantizedRelu6, סוג הפלט הוא quint8 (טווח של 0-255) אבל הטווח האפשרי של QuantizedRelu6 הוא 0-6. ערכי min_range ו-max_range הם לפיכך 0.0 ו-6.0. Dequantize on quint8 ייקח כל ערך, יטיל לצוף ויכפיל ב-6 / 255. שימו לב שאם quantizedtype הוא qint8, הפעולה תוסיף כל ערך ב-128 לפני ההטלה.
אם המצב הוא 'MIN_FIRST', הגישה הזו משמשת:
num_discrete_values = 1 << (# of bits in T)
range_adjust = num_discrete_values / (num_discrete_values - 1)
range = (range_max - range_min) * range_adjust
range_scale = range / num_discrete_values
const double offset_input = static_cast<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
ה-scaling_factor נקבע מ-`min_range`, `max_range` ו-`narrow_range` באופן שתואם את `QuantizeAndDequantize{V2|V3}` ו-`QuantizeV2`, באמצעות האלגוריתם הבא:
const int min_expected_T = std::numeric_limits<T>::min() +
(narrow_range ? 1 : 0);
const int max_expected_T = std::numeric_limits<T>::max();
const float max_expected_T = std::numeric_limits<float>::max();
const float scale_factor =
(std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
: std::max(min_range / min_expected_T,
max_range / max_expected_T);
כיתות מקוננות
מַחלָקָה | Dequantize.Options | תכונות אופציונליות עבור Dequantize |
קבועים
חוּט | OP_NAME | השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow |
שיטות ציבוריות
פלט <U> | asOutput () מחזירה את הידית הסמלית של הטנזור. |
סטטי Dequantize.Options | ציר (ציר ארוך) |
סטטי <U מרחיב TNummer > Dequantize <U> | |
static Dequantize < TFloat32 > | |
סטטי Dequantize.Options | מצב (מצב מחרוזת) |
סטטי Dequantize.Options | narrowRange (בוליאני narrowRange) |
פלט <U> | פלט () |
שיטות בירושה
קבועים
מחרוזת סופית סטטית ציבורית OP_NAME
השם של המבצע הזה, כפי שידוע על ידי מנוע הליבה של TensorFlow
שיטות ציבוריות
פלט ציבורי <U> asOutput ()
מחזירה את הידית הסמלית של הטנזור.
כניסות לפעולות TensorFlow הן יציאות של פעולת TensorFlow אחרת. שיטה זו משמשת לקבלת ידית סמלית המייצגת את חישוב הקלט.
public static Dequantize <U> create ( scope scope, Operand <? מרחיב את TType > input, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Class<U> dtype, Options... options)
שיטת מפעל ליצירת מחלקה העוטפת פעולת Dequantize חדשה.
פרמטרים
תְחוּם | ההיקף הנוכחי |
---|---|
minRange | הערך הסקלרי המינימלי שיוצר אולי עבור הקלט. |
maxRange | הערך הסקלרי המקסימלי שהופק עבור הקלט. |
dtype | סוג טנסור הפלט. נכון לעכשיו Dequantize תומך ב-float וב-bfloat16. אם 'dtype' הוא 'bfloat16', הוא תומך רק במצב 'MIN_COMBINED'. |
אפשרויות | נושא ערכי תכונות אופציונליות |
מחזיר
- מופע חדש של Dequantize
public static Dequantize < TFloat32 > create ( scope scope, Operand <? מרחיב את TType > input, Operand < TFloat32 > minRange, Operand < TFloat32 > maxRange, Options... options)
שיטת מפעל ליצירת מחלקה העוטפת פעולת Dequantize חדשה באמצעות סוגי פלט ברירת מחדל.
פרמטרים
תְחוּם | ההיקף הנוכחי |
---|---|
minRange | הערך הסקלרי המינימלי שיוצר אולי עבור הקלט. |
maxRange | הערך הסקלרי המקסימלי שהופק עבור הקלט. |
אפשרויות | נושא ערכי תכונות אופציונליות |
מחזיר
- מופע חדש של Dequantize