تدفق التوتر:: العمليات:: تخلص من الكمية
#include <array_ops.h>
قم بإلغاء ضبط موتر "الإدخال" في موتر عائم أو 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))
range(T) = numeric_limits ::max() - numeric_limits ::min()
range(T) = numeric_limits ::max() - numeric_limits ::min()
range(T) = numeric_limits ::max() - numeric_limits ::min()
مثال على وضع 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(input) - lowest_quantized; result = range_min + ((input - numeric_limits ::min()) * range_scale)
إذا كان الوضع SCALED
، يتم تنفيذ عملية الاستخلاص عن طريق ضرب كل قيمة مدخلة بعامل التحجيم. (وبالتالي فإن إدخال 0 يعين دائمًا 0.0).
يتم تحديد عامل القياس من min_range
و max_range
و narrow_range
بطريقة متوافقة مع QuantizeAndDequantize{V2|V3}
و QuantizeV2
، باستخدام الخوارزمية التالية:
const int min_expected_T = std::numeric_limits::min() + (narrow_range ? 1 : 0); const int max_expected_T = std::numeric_limits ::max(); const float max_expected_T = std::numeric_limits ::max();
const float scale_factor = (std::numeric_limits::min() == 0) ? (max_range / max_expected_T) : std::max(min_range / min_expected_T, max_range / max_expected_T);
الحجج:
- النطاق: كائن النطاق
- min_range: الحد الأدنى للقيمة العددية التي يمكن إنتاجها للإدخال.
- max_range: الحد الأقصى للقيمة العددية التي يمكن إنتاجها للإدخال.
السمات الاختيارية (انظر Attrs
):
- dtype: نوع موتر الإخراج. يدعم Dequantize حاليًا التعويم وbfloat16. إذا كان 'dtype' هو 'bfloat16'، فإنه يدعم الوضع 'MIN_COMBINED' فقط.
العوائد:
-
Output
: موتر الإخراج.
البنائين والمدمرين | |
---|---|
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range) | |
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range, const Dequantize::Attrs & attrs) |
الصفات العامة | |
---|---|
operation | |
output |
الوظائف العامة | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
وظائف ثابتة العامة | |
---|---|
Axis (int64 x) | |
Dtype (DataType x) | |
Mode (StringPiece x) | |
NarrowRange (bool x) |
الهياكل | |
---|---|
Tensorflow:: ops:: Dequantize:: Attrs | محددات السمة الاختيارية لـ Dequantize . |
الصفات العامة
عملية
Operation operation
الإخراج
::tensorflow::Output output
الوظائف العامة
تخلص من الكمية
Dequantize( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input min_range, ::tensorflow::Input max_range )
تخلص من الكمية
Dequantize( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input min_range, ::tensorflow::Input max_range, const Dequantize::Attrs & attrs )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
وظائف ثابتة العامة
محور
Attrs Axis( int64 x )
نوع D
Attrs Dtype( DataType x )
وضع
Attrs Mode( StringPiece x )
نطاق ضيق
Attrs NarrowRange( bool x )
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-24 (حسب التوقيت العالمي المتفَّق عليه)