با توجه به «ورودی» تانسور کوانتیزه شده، آن را با پارامترهای کوانتیزهسازی جدید مجدداً تعیین کنید.
با توجه به «ورودی» تانسور کوانتیزه شده، که با استفاده از {input_scales، input_zero_points، input_quantization_axis، input_quantization_min_val، input_quantization_max_val} کوانتیزه شده است، آن را مجدداً به یک تانسور کوانتیزه کنید، که با استفاده از {output_scales، output_scale_valiting، output_scale_value، output_value_zero، خروجی_مقیاس_ارزش_ارزیابی، خروجی_مقیاس_ارزش_نقطه، خروجی_مقیاس_ارزش_ارزیابی، خروجی_مقیاس ارزش گذاری، خروجی_مقیاس_ارزش_ارزش کوانتیزاسیون مجدد با استفاده از فرمول انجام می شود: output_quantized_data = clip((Input_quantized_data - input_zero_point) * (input_scale / output_scale) + output_zero_point، output_quantization_min_val، output_quantization_max_val)
موارد پشتیبانی شده کوانتیزاسیون هر تانسور و هر محور به شرح زیر است:
- در تانسور -> در تانسور
- در هر تانسور -> هر محور
- per-axis -> per-axis که در آن input_quantization_axis برابر با output_quantization_axis است. به عنوان مثال، حداقل یکی از محورهای کوانتیزاسیون_ورودی و محورهای_کوانتیزاسیون_خروجی باید 1- باشد یا دو مورد باید برابر باشند.
کلاس های تو در تو
کلاس | UniformRequantize.Options | ویژگی های اختیاری برای UniformRequantize |
روش های عمومی
خروجی <U> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
static <U, T> UniformRequantize <U> | ایجاد ( دامنه دامنه، ورودی عملوند <T>، عملوند <Float> inputScales، عملوند <Integer> inputZeroPoints، عملوند <Float> outputScales، عملوند <Integer> outputZeroPoints، Class<U> Tout، Long inputQuantizationMinValQuant، Long inputQuantizationMinValtVal، Long inputManQuant، Long inputMinQuantValt، Long inputMinQuantValt, Long inputMinQuantValt, Long inputMinQuantValt, Long InputizationVal, Long input, scope scope, scope scope, Operand scope خروجی طولانیQuantizationMaxVal، گزینهها... گزینهها) روش کارخانه برای ایجاد کلاسی که یک عملیات UniformRequantize جدید را بسته بندی می کند. |
استاتیک UniformRequantize.Options | inputQuantizationAxis (محور inputQuantization طولانی) |
خروجی <U> | خروجی () خروجی تانسور Tout را کوانتیزه کرد که شکل آن مشابه ورودی است. |
استاتیک UniformRequantize.Options | outputQuantizationAxis (محور خروجی طولانی مدت) |
روش های ارثی
روش های عمومی
خروجی عمومی <U> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
عمومی static UniformRequantize <U> create ( Scope scope, Operand <T> input, Operand <Float> inputScales, Operand <Integer> inputZeroPoints, Operand <Float> outputScales, Operand <Integer> outputZeroPoints, Class<U> Tout, Long inVin Long inputQuantizationMaxVal، Long outputQuantizationMinVal، Long outputQuantizationMaxVal، گزینهها...
روش کارخانه برای ایجاد کلاسی که یک عملیات UniformRequantize جدید را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
ورودی | باید تنسور قلع باشد. |
مقیاس های ورودی | مقدار(های) شناور به عنوان مقیاس(های) هنگام کمی کردن داده های اصلی که «ورودی» نشان می دهد استفاده می شود. اگر کوانتیزاسیون_محور -1 باشد (کوانتیزاسیون به ازای هر تانسور) باید یک تانسور اسکالر باشد، در غیر این صورت تانسور 1 بعدی اندازه (input.dim_size(quantization_axis),) (کوانتیزاسیون هر محور). |
inputZeroPoints | مقدار(های) int32 به عنوان نقطه(های)صفر هنگام کمی کردن داده های اصلی که "ورودی" نشان می دهد استفاده می شود. شرایط شکلی مشابه فلس ها. |
مقیاس های خروجی | مقدار(های) شناور برای استفاده به عنوان مقیاس(های) جدید برای کمی کردن داده های اصلی که «ورودی» نشان می دهد. اگر کوانتیزاسیون_محور -1 باشد (کوانتیزاسیون به ازای هر تانسور) باید یک تانسور اسکالر باشد، در غیر این صورت تانسور 1 بعدی اندازه (input.dim_size(quantization_axis),) (کوانتیزاسیون هر محور). |
outputZeroPoints | مقدار(های) int32 برای استفاده به عنوان نقطه(های)صفر جدید برای کمی کردن داده های اصلی که "ورودی" نشان می دهد. شرایط شکلی مشابه فلس ها. |
تاوت | نوع تانسور خروجی یک tf.DType از: tf.qint8، tf.qint32 |
inputQuantizationMinVal | مقدار کمسنجی که هنگام کمیسازی دادههای اصلی که «ورودی» نشاندهنده استفاده میشود. هدف این مشخصه معمولاً (اما نه محدود به) نشان دادن محدوده باریک است، جایی که این مقدار روی «(کمترین قلع) + 1» در صورت محدود بودن محدوده، و «(کمترین قلع)» تنظیم میشود. به عنوان مثال، اگر Tin qint8 باشد، اگر محدوده باریک کوانتیزه شود، این مقدار روی 127- تنظیم می شود و اگر نه، -128 است. |
inputQuantizationMaxVal | حداکثر مقدار کمی که هنگام کمی کردن دادههای اصلی که «ورودی» نشان میدهد استفاده میشود. هدف این ویژگی معمولاً (اما نه محدود به) نشان دادن محدوده باریک است، جایی که این مقدار روی «(حداکثر حداکثر)» برای هر دو محدوده باریک و نه محدوده باریک تنظیم شده است. به عنوان مثال، اگر Tin qint8 باشد، روی 127 تنظیم می شود. |
خروجیQuantizationMinVal | مقدار کم کمیت جدید برای کمی کردن داده های اصلی که «ورودی» نشان می دهد. |
خروجیQuantizationMaxVal | مقدار حداکثر کمی جدید برای کمی کردن داده های اصلی که «ورودی» نشان می دهد. |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- یک نمونه جدید از UniformRequantize
عمومی استاتیک UniformRequantize.Options inputQuantizationAxis (Long inputQuantizationAxis)
مولفه های
ورودی QuantizationAxis | محور کوانتیزهسازی که هنگام کمیسازی دادههای اصلی که «ورودی» نشاندهنده استفاده میشود. شاخص بعد تانسور را نشان می دهد که در آن کوانتیزاسیون هر محور برای برش های امتداد آن بعد اعمال می شود. اگر روی -1 تنظیم شود (پیشفرض)، این نشاندهنده کوانتیزاسیون هر تانسور است. در غیر این صورت، باید در محدوده [0, input.dims()) تنظیم شود. |
---|
استاتیک عمومی UniformRequantize.Options outputQuantizationAxis (Long outputQuantizationAxis)
مولفه های
خروجی QuantizationAxis | محور کوانتیزهسازی جدید برای کمی کردن دادههای اصلی که «ورودی» نشاندهنده استفاده میشود. |
---|