با استفاده از
توزیع واقعی مقادیر برای به حداکثر رساندن استفاده از عمق بیت پایین و تنظیم محدوده حداقل و حداکثر خروجی بر این اساس.
[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 با حداقل کاهش دقت کاهش دهیم.
ثابت ها
رشته | OP_NAME | نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود |
روش های عمومی
استاتیک <U TType > QuantizeDownAndShrinkRange <U> را گسترش می دهد | |
خروجی <U> | خروجی () |
خروجی < TFloat32 > | خروجی حداکثر () مقدار شناور که حداکثر مقدار خروجی کوانتیزه شده نشان دهنده آن است. |
خروجی < TFloat32 > | خروجی حداقل () مقدار شناور که حداقل مقدار خروجی کوانتیزه شده نشان دهنده آن است. |
روش های ارثی
ثابت ها
رشته نهایی ثابت عمومی OP_NAME
نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود
روش های عمومی
استاتیک عمومی QuantizeDownAndShrinkRange <U> ایجاد ( scope scope، Operand <? گسترش TType > input، Operand < TFloat32 > inputMin، Operand < TFloat32 > inputMax، Class<U> outType)
روش کارخانه برای ایجاد یک کلاس که یک عملیات جدید QuantizeDownAndShrinkRange را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
inputMin | مقدار شناور که حداقل مقدار ورودی کوانتیزه شده نشان دهنده آن است. |
ورودی حداکثر | مقدار شناور که حداکثر مقدار ورودی کوانتیزه شده نشان دهنده آن است. |
outType | نوع خروجی باید کمی عمق کمتر از Tinput باشد. |
برمی گرداند
- یک نمونه جدید از QuantizeDownAndShrinkRange
خروجی عمومی < TFloat32 > outputMax ()
مقدار شناور که حداکثر مقدار خروجی کوانتیزه شده نشان دهنده آن است.