تينسورفلو :: العمليات :: QuantizeAndDequantizeV2
#include <array_ops.h>
يكمي ثم يزيل التنسور.
ملخص
هذا المرجع يحاكي فقدان الدقة من المرور الأمامي الكمي بواسطة:
- قياس الموتر لأرقام النقطة الثابتة ، والتي يجب أن تتطابق مع طريقة التكميم المستهدفة عند استخدامها في الاستدلال.
- إعادة ترتيبها إلى أرقام الفاصلة العائمة للعمليات التالية ، على الأرجح matmul.
هناك طرق مختلفة للقياس. يستخدم هذا الإصدار القياس فقط ، لذا فإن 0.0 تعيين إلى 0.
من 'عدد_بتات' المحددة في نوع المخرجات الكمية ، فإنه يحدد الحد الأدنى والحد الأقصى للقيم الكمية القابلة للتمثيل.
على سبيل المثال
- [-128 ، 127] للإشارة ، أو num_bits = 8 ، أو
- [0 ، 255] لغير الموقعة ، عدد البتات = 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]: سيستخدم معامل مقياس من -128 / -10.0 = 12.8 في هذه الحالة ، سيتم تحديث input_max ليكون 127 / 12.8 = 9.921875
- إذا تم التوقيع على المخرجات ، عدد البتات = 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 المحدد فقط.
بعد تحديد scale_factor وتحديث نطاق الإدخال ، فإنه يطبق ما يلي على كل قيمة في موتر "الإدخال".
الإخراج = الجولة (المشبك (القيمة ، المدخلات_دقيقة ، المدخلات_الحد الأقصى) * مقياس_المعامل) / scale_factor.
تعمل الدالة المستديرة أعلاه على تقريب القيمة بناءً على وضع round_mode المحدد.
الحجج:
- النطاق: كائن النطاق
- المدخلات: التنسور إلى ثبت قيمة ثم dequantize.
- input_min: إذا كان
range_given == True
، فهذا يحدد الحد الأدنى لقيمة الإدخال التي يجب تمثيلها ، وإلا يتم تحديدها من الحد الأدنى لقيمة موترinput
. - input_max: إذا كان
range_given == True
، فهذا يحدد الحد الأقصى لقيمة الإدخال التي يجب تمثيلها ، وإلا يتم تحديدها من الحد الأقصى لقيمة موترinput
.
السمات الاختيارية (انظر Attrs
):
- Sign_input: ما إذا كان التكميم موقعًا أم غير موقع. (في الواقع كان يجب أن يُطلق على هذه المعلمة اسم "
signed_output
) - عدد_بتات: عرض البت للتكمية.
- range_given: ما إذا كان النطاق معطى أو يجب تحديده من موتر
input
. - round_mode: تتحكم السمة "round_mode" في استخدام خوارزمية التقريب لكسر التعادل عند تقريب القيم العائمة إلى مكافئاتها الكمية. أوضاع التقريب التالية مدعومة حاليًا:
- HALF_TO_EVEN: هذا هو وضع الجولة الافتراضي.
- HALF_UP: تقريب نحو الموجب. في هذا الوضع ، يتم تقريب 7.5 إلى 8 و -7.5 إلى -7.
- tight_range: إذا كان هذا صحيحًا ، فإن القيمة المطلقة للقيمة الدنيا المُكمَّمة هي نفس القيمة القصوى المُكمَّمة ، بدلاً من 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
الوظائف العامة
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
المشغل :: tensorflow :: الإدخال
operator::tensorflow::Input() const
المشغل :: Tensorflow :: Output
operator::tensorflow::Output() const
وظائف ثابتة عامة
نطاق ضيق
Attrs NarrowRange( bool x )
نومبيتس
Attrs NumBits( int64 x )
المدى
Attrs RangeGiven( bool x )
RoundMode
Attrs RoundMode( StringPiece x )
التوقيع
Attrs SignedInput( bool x )
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-04-20 UTC.