قم بإلغاء ضبط موتر "الإدخال" في موتر عائم أو bfloat16.
[min_range, max_range] عبارة عن عوامات عددية تحدد نطاق الإخراج. تتحكم السمة "mode" بالضبط في الحسابات المستخدمة لتحويل القيم العائمة إلى معادلاتها الكمية.
في الوضع "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 على quint8 كل قيمة، ويلقيها لتطفو، ويضربها في 6/255. لاحظ أنه إذا كان النوع الكمي هو 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)
يتم تحديد عامل القياس من `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> | كإخراج () إرجاع المقبض الرمزي للموتر. |
ثابت Dequantize.Options | المحور (المحور الطويل) |
ثابت <U يمتد TNumber > Dequantize <U> | |
ثابت Dequantize <TFloat32> | |
ثابت Dequantize.Options | الوضع (وضع السلسلة) |
ثابت Dequantize.Options | النطاق الضيق (النطاق الضيق المنطقي) |
الإخراج <U> | الإخراج () |
الطرق الموروثة
الثوابت
السلسلة النهائية الثابتة العامة OP_NAME
اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي
الأساليب العامة
الإخراج العام <U> كإخراج ()
إرجاع المقبض الرمزي للموتر.
المدخلات إلى عمليات TensorFlow هي مخرجات عملية TensorFlow أخرى. يتم استخدام هذه الطريقة للحصول على مقبض رمزي يمثل حساب الإدخال.
إنشاء Dequantize ثابت عام <U> (نطاق النطاق ، المعامل <؟ يمتد TType > الإدخال، المعامل < TFloat32 > minRange، المعامل < TFloat32 > maxRange، الفئة <U> dtype، الخيارات... الخيارات)
طريقة المصنع لإنشاء فئة تغلف عملية Dequantize جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
minRange | الحد الأدنى من القيمة العددية التي يمكن إنتاجها للمدخلات. |
maxRange | الحد الأقصى للقيمة العددية التي يمكن إنتاجها للمدخلات. |
dtype | نوع موتر الإخراج. يدعم Dequantize حاليًا التعويم وbfloat16. إذا كان 'dtype' هو 'bfloat16'، فإنه يدعم الوضع 'MIN_COMBINED' فقط. |
خيارات | يحمل قيم السمات الاختيارية |
المرتجعات
- مثيل جديد من Dequantize
إنشاء Dequantize ثابت عام < TFloat32 > ( نطاق النطاق ، المعامل <؟ يمتد TType > الإدخال، المعامل < TFloat32 > minRange، المعامل < TFloat32 > maxRange، خيارات... خيارات)
طريقة المصنع لإنشاء فئة تغلف عملية Dequantize جديدة باستخدام أنواع المخرجات الافتراضية.
حدود
نِطَاق | النطاق الحالي |
---|---|
minRange | الحد الأدنى من القيمة العددية التي يمكن إنتاجها للمدخلات. |
maxRange | الحد الأقصى للقيمة العددية التي يمكن إنتاجها للمدخلات. |
خيارات | يحمل قيم السمات الاختيارية |
المرتجعات
- مثيل جديد من Dequantize