قم بتحويل موتر "الإدخال" الكمي إلى "مخرج" أقل دقة، باستخدام
التوزيع الفعلي للقيم لتعظيم استخدام عمق البت الأقل وضبط نطاقات الإخراج الدنيا والقصوى وفقًا لذلك.
[input_min, input_max] عبارة عن عوامات عددية تحدد نطاق التفسير العائم لبيانات "الإدخال". على سبيل المثال، إذا كانت قيمة input_min هي -1.0f و input_max هي 1.0f، ونحن نتعامل مع البيانات الكمية quint16، فيجب تفسير القيمة 0 في البيانات ذات 16 بت على أنها -1.0f، و65535 تعني 1.0f.
يحاول هذا المشغل الضغط على أكبر قدر ممكن من الدقة في مخرجات ذات عمق بت أقل عن طريق حساب القيم الدنيا والقصوى الفعلية الموجودة في البيانات. على سبيل المثال، ربما لا يحتوي مدخل quint16 على قيم أقل من 16,384 ولا شيء أعلى من 49,152. وهذا يعني أن نصف النطاق مطلوب فعليًا فقط، وجميع التفسيرات العائمة تتراوح بين -0.5f و0.5f، لذلك إذا أردنا ضغط البيانات إلى مخرجات quint8، فيمكننا استخدام هذا النطاق بدلاً من النطاق النظري -1.0f إلى 1.0 f الذي يقترحه الإدخال min و max.
من الناحية العملية، يعد هذا مفيدًا للغاية لأخذ المخرجات من عمليات مثل QuantizedMatMul التي يمكن أن تنتج مخرجات ذات عمق بت أعلى من مدخلاتها وقد يكون لها نطاقات مخرجات محتملة كبيرة، ولكن في الممارسة العملية لديها توزيع لقيم المدخلات التي تستخدم فقط جزءًا صغيرًا من نطاق ممكن. من خلال تغذية هذا الإخراج في هذا المشغل، يمكننا تقليله من 32 بت إلى 8 مع الحد الأدنى من فقدان الدقة.
الثوابت
خيط | OP_NAME | اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي |
الأساليب العامة
ثابت <U يمتد TType > QuantizeDownAndShrinkRange <U> | |
الإخراج <U> | انتاج () |
الإخراج <TFloat32> | الناتج ماكس () القيمة العائمة التي تمثل الحد الأقصى لقيمة الإخراج الكمية. |
الإخراج <TFloat32> | الحد الأدنى للإخراج () القيمة العائمة التي تمثل الحد الأدنى لقيمة الإخراج الكمية. |
الطرق الموروثة
الثوابت
السلسلة النهائية الثابتة العامة OP_NAME
اسم هذه العملية كما هو معروف بواسطة محرك TensorFlow الأساسي
الأساليب العامة
إنشاء QuantizeDownAndShrinkRange <U> الثابت العام ( نطاق النطاق ، المعامل <؟ يمتد TType > الإدخال، المعامل < TFloat32 > inputMin، المعامل < TFloat32 > inputMax، Class<U> outType)
طريقة المصنع لإنشاء فئة تلتف حول عملية QuantizeDownAndShrinkRange جديدة.
حدود
نِطَاق | النطاق الحالي |
---|---|
inputMin | القيمة العائمة التي تمثل الحد الأدنى لقيمة الإدخال الكمية. |
inputMax | القيمة العائمة التي تمثل الحد الأقصى لقيمة الإدخال الكمية. |
outType | نوع الإخراج. يجب أن يكون عمقه أقل قليلاً من Tinput. |
عائدات
- مثيل جديد لـ QuantizeDownAndShrinkRange