تدفق التوتر:: العمليات:: الكميات و DequantizeV2

#include <array_ops.h>

quantizes ثم dequantizes موتر.

ملخص

يحاكي هذا المرجع خسارة الدقة من التمريرة الأمامية الكمية عن طريق:

  1. تكميم الموتر إلى أرقام نقطية ثابتة، والتي يجب أن تتطابق مع طريقة التكميم المستهدفة عند استخدامها في الاستدلال.
  2. إعادتها إلى أرقام الفاصلة العائمة للعمليات التالية، على الأرجح ماتمول.

هناك طرق مختلفة للتكميم. يستخدم هذا الإصدار القياس فقط، لذلك يتم تعيين 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
)