تدفق التوتر:: العمليات:: الكميات و DequantizeV2
#include <array_ops.h>
quantizes ثم dequantizes موتر.
ملخص
يحاكي هذا المرجع خسارة الدقة من التمريرة الأمامية الكمية عن طريق:
- تكميم الموتر إلى أرقام نقطية ثابتة، والتي يجب أن تتطابق مع طريقة التكميم المستهدفة عند استخدامها في الاستدلال.
- إعادتها إلى أرقام الفاصلة العائمة للعمليات التالية، على الأرجح ماتمول.
هناك طرق مختلفة للتكميم. يستخدم هذا الإصدار القياس فقط، لذلك يتم تعيين 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] إلى نطاق يقع ضمن النطاق الكمي القابل للتمثيل.
فهو يحدد المقياس من أحد المدخلات_min و input_max، ثم يقوم بتحديث المقياس الآخر لتعظيم النطاق القابل للتمثيل.
على سبيل المثال
- إذا تم توقيع الإخراج، num_bits = 8، [input_min، input_max] = [-10.0، 5.0]: سيستخدم عامل مقياس قدره -128 / -10.0 = 12.8 في هذه الحالة، سيتم تحديث input_max ليكون 127 / 12.8 = 9.921875
- إذا تم توقيع الإخراج، num_bits = 8، [input_min، input_max] = [-10.0، 10.0]: سيستخدم عامل مقياس قدره 127 / 10.0 = 12.7 في هذه الحالة، سيتم تحديث input_min ليصبح 128.0 / 12.7 = -10.07874
- إذا كان الإخراج غير موقع، فسيتم فرض قيمة input_min على 0، ويتم استخدام input_max المحدد فقط.
بعد تحديد عامل المقياس وتحديث نطاق الإدخال، يتم تطبيق ما يلي على كل قيمة في موتر "الإدخال".
الإخراج = جولة (المشبك (القيمة، input_min، input_max) * عامل المقياس) / عامل المقياس.
تعمل الدالة المستديرة أعلاه على تقريب القيمة بناءً على وضع round_mode المحدد.
الحجج:
- النطاق: كائن النطاق
- الإدخال: الموتر للتكميم ومن ثم التكمية.
- input_min: إذا كان
range_given == True
، فهذا يحدد الحد الأدنى لقيمة الإدخال التي يجب تمثيلها، وإلا فسيتم تحديدها من القيمة الدنيا لموترinput
. - input_max: إذا كان
range_given == True
، فهذا يحدد الحد الأقصى لقيمة الإدخال التي يجب تمثيلها، وإلا فسيتم تحديدها من القيمة القصوى لموترinput
.
السمات الاختيارية (انظر Attrs
):
- Sign_input: ما إذا كان التكميم موقعًا أم غير موقع. (في الواقع كان يجب أن يُطلق على هذه المعلمة اسم
signed_output
) - num_bits: عرض بتات التكميم.
- range_given: ما إذا كان النطاق محددًا أم يجب تحديده من موتر
input
. - round_mode: تتحكم السمة 'round_mode' في خوارزمية تقريب التعادل المستخدمة عند تقريب القيم العائمة إلى مكافئاتها الكمية. أوضاع التقريب التالية مدعومة حاليًا:
- HALF_TO_EVEN: هذا هو الوضع الدائري الافتراضي.
- HALF_UP: جولة نحو الإيجابية. في هذا الوضع، يتم تقريب 7.5 إلى 8 و-7.5 إلى 7.
- نطاق ضيق: إذا كان True، فإن القيمة المطلقة للقيمة الدنيا المكممة هي نفس القيمة القصوى المكممة، بدلاً من 1 أكبر. أي بالنسبة لتكميم 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
الوظائف العامة
الكميات و DequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max )
الكميات و DequantizeV2
QuantizeAndDequantizeV2( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
وظائف ثابتة العامة
نطاق ضيق
Attrs NarrowRange( bool x )
نومبيتس
Attrs NumBits( int64 x )
RangeGiven
Attrs RangeGiven( bool x )
الوضع الدائري
Attrs RoundMode( StringPiece x )
SignedInput
Attrs SignedInput( bool x )
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-25 (حسب التوقيت العالمي المتفَّق عليه)