جریان تنسور:: عملیات:: 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 مقادیر کمتر از 16384 و هیچ کدام بالاتر از 49152 نداشته باشد. این بدان معناست که در واقع فقط نیمی از محدوده مورد نیاز است، همه تفسیرهای شناور بین -0.5f و 0.5f هستند، بنابراین اگر بخواهیم داده ها را در خروجی quint8 فشرده کنیم، می توانیم از آن محدوده به جای تئوری -1.0f تا 1.0 استفاده کنیم. f که با ورودی min و max پیشنهاد می شود.
در عمل، این برای گرفتن خروجی از عملیاتهایی مانند QuantizedMatMul که میتوانند خروجیهایی با عمق بیت بالاتر از ورودیهای خود تولید کنند و ممکن است محدودههای خروجی بالقوه زیادی داشته باشند، بسیار مفید است، اما در عمل دارای توزیعی از مقادیر ورودی هستند که فقط از کسر کوچکی از مقادیر ورودی استفاده میکند. محدوده ممکن با تغذیه آن خروجی به این اپراتور، میتوانیم آن را از 32 بیت به 8 با حداقل کاهش دقت کاهش دهیم.
استدلال ها:
- scope: یک شی Scope
- input_min: مقدار شناوری که حداقل مقدار ورودی کوانتیزه شده نشان دهنده آن است.
- input_max: مقدار شناوری که حداکثر مقدار ورودی کوانتیزه شده نشان دهنده آن است.
- out_type: نوع خروجی. باید کمی عمق کمتر از Tinput باشد.
برمی گرداند:
- خروجی
Output
-
Output
output_min: مقدار شناوری که حداقل مقدار خروجی کوانتیزه شده نشان دهنده آن است. -
Output
output_max: مقدار شناوری که حداکثر مقدار خروجی کوانتیزه شده نشان دهنده آن است.
صفات عمومی
عملیات
Operation operation
خروجی
::tensorflow::Output output
output_max
::tensorflow::Output output_max
خروجی_دقیقه
::tensorflow::Output output_min
توابع عمومی
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده 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```"]]