تدفق التوتر:: العمليات:: QuantizeDownAndShrinkRange
#include <math_ops.h>
قم بتحويل موتر "الإدخال" الكمي إلى "مخرج" أقل دقة، باستخدام.
ملخص
التوزيع الفعلي للقيم لتعظيم استخدام عمق البت الأقل وضبط نطاقات الإخراج الدنيا والقصوى وفقًا لذلك.
[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 مع الحد الأدنى من فقدان الدقة.
الحجج:
- النطاق: كائن النطاق
- input_min: القيمة العائمة التي تمثل الحد الأدنى لقيمة الإدخال الكمية.
- input_max: القيمة العائمة التي تمثل الحد الأقصى لقيمة الإدخال الكمية.
- out_type: نوع الإخراج. يجب أن يكون عمقه أقل قليلاً من Tinput.
العوائد:
- إخراج
Output
-
Output
: القيمة العائمة التي تمثل الحد الأدنى لقيمة الإخراج الكمي. -
Output
: القيمة العائمة التي تمثل الحد الأقصى لقيمة الإخراج الكمية.
الصفات العامة
عملية
Operation operation
الإخراج
::tensorflow::Output output
input_max
::tensorflow::Output output_max
input_min
::tensorflow::Output output_min
الوظائف العامة
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# tensorflow::ops::QuantizeDownAndShrinkRange Class Reference\n\ntensorflow::ops::QuantizeDownAndShrinkRange\n===========================================\n\n`#include \u003cmath_ops.h\u003e`\n\nConvert the quantized 'input' tensor into a lower-precision 'output', using the.\n\nSummary\n-------\n\nactual distribution of the values to maximize the usage of the lower bit depth and adjusting the output min and max ranges accordingly.\n\n\\[input_min, input_max\\] are scalar floats that specify the range for the float interpretation of the 'input' data. For example, if input_min is -1.0f and input_max is 1.0f, and we are dealing with quint16 quantized data, then a 0 value in the 16-bit data should be interpreted as -1.0f, and a 65535 means 1.0f.\n\nThis operator tries to squeeze as much precision as possible into an output with a lower bit depth by calculating the actual min and max values found in the data. For example, maybe that quint16 input has no values lower than 16,384 and none higher than 49,152. That means only half the range is actually needed, all the float interpretations are between -0.5f and 0.5f, so if we want to compress the data into a quint8 output, we can use that range rather than the theoretical -1.0f to 1.0f that is suggested by the input min and max.\n\nIn practice, this is most useful for taking output from operations like [QuantizedMatMul](/versions/r1.15/api_docs/cc/class/tensorflow/ops/quantized-mat-mul#classtensorflow_1_1ops_1_1_quantized_mat_mul) that can produce higher bit-depth outputs than their inputs and may have large potential output ranges, but in practice have a distribution of input values that only uses a small fraction of the possible range. By feeding that output into this operator, we can reduce it from 32 bits down to 8 with minimal loss of accuracy.\n\nArguments:\n\n- scope: A [Scope](/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope) object\n- input_min: The float value that the minimum quantized input value represents.\n- input_max: The float value that the maximum quantized input value represents.\n- out_type: The type of the output. Should be a lower bit depth than Tinput.\n\n\u003cbr /\u003e\n\nReturns:\n\n- [Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) output\n- [Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) output_min: The float value that the minimum quantized output value represents.\n- [Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) output_max: The float value that the maximum quantized output value represents.\n\n\u003cbr /\u003e\n\n| ### Constructors and Destructors ||\n|---|---|\n| [QuantizeDownAndShrinkRange](#classtensorflow_1_1ops_1_1_quantize_down_and_shrink_range_1a19ee578c7b888e9aca48d291a1a0d5da)`(const ::`[tensorflow::Scope](/versions/r1.15/api_docs/cc/class/tensorflow/scope#classtensorflow_1_1_scope)` & scope, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input_min, ::`[tensorflow::Input](/versions/r1.15/api_docs/cc/class/tensorflow/input#classtensorflow_1_1_input)` input_max, DataType out_type)` ||\n\n| ### Public attributes ||\n|-------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|\n| [operation](#classtensorflow_1_1ops_1_1_quantize_down_and_shrink_range_1a3ab13cf6f6f7814f990022d1a49b3a99) | [Operation](/versions/r1.15/api_docs/cc/class/tensorflow/operation#classtensorflow_1_1_operation) |\n| [output](#classtensorflow_1_1ops_1_1_quantize_down_and_shrink_range_1a02ce18813489b86884040f42ddcfca87) | `::`[tensorflow::Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n| [output_max](#classtensorflow_1_1ops_1_1_quantize_down_and_shrink_range_1a3c2857dfc27b8777dc82845ec0a4919a) | `::`[tensorflow::Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n| [output_min](#classtensorflow_1_1ops_1_1_quantize_down_and_shrink_range_1aa8dddbbd62576e4961029ce5ed846677) | `::`[tensorflow::Output](/versions/r1.15/api_docs/cc/class/tensorflow/output#classtensorflow_1_1_output) |\n\nPublic attributes\n-----------------\n\n### operation\n\n```text\nOperation operation\n``` \n\n### output\n\n```text\n::tensorflow::Output output\n``` \n\n### output_max\n\n```scdoc\n::tensorflow::Output output_max\n``` \n\n### output_min\n\n```scdoc\n::tensorflow::Output output_min\n``` \n\nPublic functions\n----------------\n\n### QuantizeDownAndShrinkRange\n\n```gdscript\n QuantizeDownAndShrinkRange(\n const ::tensorflow::Scope & scope,\n ::tensorflow::Input input,\n ::tensorflow::Input input_min,\n ::tensorflow::Input input_max,\n DataType out_type\n)\n```"]]