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