برای ایجاد «خروجی» کوانتیزه شده تانسور کوانتیزه «lhs» و تانسور کوانتیزه «rhs» را انجام دهید.
با توجه به "lhs" کوانتیزه شده و "rhs" کوانتیزه شده، افزودن کوانتیزه شده روی "lhs" و "rhs" را برای ایجاد "خروجی" کوانتیزه انجام می دهد.
«UniformQuantizedAdd» از قوانین پخش Numpy پیروی می کند. دو شکل آرایه ورودی از نظر عنصر با هم مقایسه می شوند. با شروع از ابعاد انتهایی، دو بعد یا باید برابر باشند یا یکی از آنها باید 1 باشد.
«lhs» و «rhs» باید تانسور کوانتیزه شوند، جایی که مقدار داده با استفاده از فرمول کوانتیزه میشود:
quantized_data = clip(original_data / scale + zero_point, quantization_min_val, quantization_max_val)
"خروجی" نیز با استفاده از همان فرمول کوانتیزه می شود.اگر «lhs» و «خروجی» هر دو در هر محور کوانتیزه شوند، محور کوانتیزهسازی باید مطابقت داشته باشد. همچنین، اگر «rhs» و «خروجی» هر دو در هر محور کوانتیزه شوند، محور کوانتیزه شدن باید مطابقت داشته باشد. مطابقت به این معنی است که هنگام اضافه کردن، در مورد پخش، محور باید مطابقت داشته باشد. یعنی برای هر دو عملوند «lhs» و «rhs»، اگر «operand.quantization_axis» >= 0 و «output.quantization_axis» >= 0، «operand.dims» - «operand.quantization_axis» باید برابر با «output.dims» باشد. " - "output.quantization_axis".
کلاس های تو در تو
کلاس | UniformQuantizedAdd.Options | ویژگی های اختیاری برای UniformQuantizedAdd |
روش های عمومی
خروجی <T> | asOutput () دسته نمادین یک تانسور را برمیگرداند. |
استاتیک <T> UniformQuantizedAdd <T> | ایجاد ( scope scope، عملوند <T> lhs، عملوند <T> rhs، عملوند <Float> lhsScales، عملوند <Integer> lhsZeroPoints، عملوند <Float> rhsScales، عملوند <Integer> rhsZeroPoints، عملوند <Scalte , out> > outputZeroPoints، Long lhsQuantizationMinVal، Long lhsQuantizationMaxVal، Long rhsQuantizationMinVal، طولانی rhsQuantizationMaxVal، Long outputQuantizationMinVal، Long outputQuantizationMaxVal، گزینه ها... روش کارخانه برای ایجاد کلاسی که یک عملیات UniformQuantizedAdd جدید را بسته بندی می کند. |
استاتیک UniformQuantizedAdd.Options | lhsQuantizationAxis (Long lhsQuantizationAxis) |
خروجی <T> | خروجی () تانسور کوانتیزه خروجی |
استاتیک UniformQuantizedAdd.Options | outputQuantizationAxis (محور خروجی طولانی مدت) |
استاتیک UniformQuantizedAdd.Options | rhsQuantizationAxis (Long rhsQuantizationAxis) |
روش های ارثی
روش های عمومی
خروجی عمومی <T> asOutput ()
دسته نمادین یک تانسور را برمیگرداند.
ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.
عمومی استاتیک UniformQuantizedAdd <T> create ( محدوده دامنه ، عملوند <T> lhs، عملوند <T> rhs، عملوند <Float> lhsScales، عملوند <صحیح> lhsZeroPoints، عملوند <Float> rhsScales، عملوند <ZinderoF، عملوند <IntegerPoint> > OutputScales، عملوند <Integer> outputZeroPoints، Long lhsQuantizationMinVal، Long lhsQuantizationMaxVal، Long rhsQuantizationMinVal، طولانی rhsQuantizationMaxVal، Long outputQuantizationMinVal، Long outputQuantizationMinVal، Long Outputx )
روش کارخانه برای ایجاد کلاسی که یک عملیات UniformQuantizedAdd جدید را بسته بندی می کند.
پارامترها
دامنه | محدوده فعلی |
---|---|
lhs | باید یک تانسور کوانتیزه باشد. |
rhs | باید یک تانسور کوانتیزه باشد. |
lhsScales | مقدار(های) شناور به عنوان فاکتورهای مقیاس هنگام کمی کردن داده های اصلی که «lhs» نشان می دهد استفاده می شود. |
lhsZeroPoints | مقدار(های) int32 بهعنوان نقطه صفر در زمان کمی کردن دادههای اصلی که «lhs» نشاندهنده آن است، استفاده میشود. باید همان شکل "lhs_scales" را داشته باشد. |
rhsScales | مقدار(های) شناور به عنوان فاکتورهای مقیاس هنگام کمی کردن داده های اصلی که "rhs" نشان می دهد استفاده می شود. |
rhsZeroPoints | مقدار(های) int32 به عنوان نقطه صفر در زمان کمی کردن داده های اصلی که "rhs" نشان می دهد استفاده می شود. باید شکلی مشابه با "rhs_scales" داشته باشد. |
مقیاس های خروجی | مقدار(های) شناور برای استفاده به عنوان فاکتورهای مقیاس هنگام کمی کردن داده های اصلی که «خروجی» نشان می دهد. |
outputZeroPoints | مقدار(های) int32 به عنوان نقطه صفر در زمان کمی کردن داده های اصلی که خروجی نشان می دهد استفاده می شود. باید همان شکل «مقیاس_خروجی» را داشته باشد. |
lhsQuantizationMinVal | مقدار حداقل دادههای کوانتیزهشده ذخیرهشده در «lhs». برای مثال، اگر «Tin» «qint8» باشد، اگر محدوده باریک کوانتیزه شود، باید روی 127- یا اگر نه -128 تنظیم شود. |
lhsQuantizationMaxVal | حداکثر مقدار دادههای کوانتیزهشده ذخیرهشده در «lhs». برای مثال، اگر «Tin» «qint8» باشد، باید روی 127 تنظیم شود. |
rhsQuantizationMinVal | مقدار حداقل داده های کوانتیزه شده ذخیره شده در «rhs». برای مثال، اگر «Tin» «qint8» باشد، اگر محدوده باریک کوانتیزه شود، باید روی 127- یا اگر نه -128 تنظیم شود. |
rhsQuantizationMaxVal | حداکثر مقدار دادههای کوانتیزهشده ذخیرهشده در «rhs». برای مثال، اگر «Tin» «qint8» باشد، باید روی 127 تنظیم شود. |
خروجیQuantizationMinVal | مقدار حداقل داده های کوانتیزه شده ذخیره شده در «خروجی». برای مثال، اگر «Tout» «qint8» باشد، اگر محدوده باریک کوانتیزه شود، باید روی 127- یا در غیر این صورت 128- تنظیم شود. |
خروجیQuantizationMaxVal | حداکثر مقدار داده های کوانتیزه شده ذخیره شده در «خروجی». برای مثال، اگر «Tout» «qint8» باشد، باید روی 127 تنظیم شود. |
گزینه ها | مقادیر ویژگی های اختیاری را حمل می کند |
برمی گرداند
- یک نمونه جدید از UniformQuantizedAdd
عمومی ثابت UniformQuantizedAdd.Options lhsQuantizationAxis (Long lhsQuantizationAxis)
پارامترها
lhsQuantizationAxis | شاخص بعد تانسور را نشان می دهد که در آن کوانتیزاسیون هر محور برای برش های امتداد آن بعد اعمال می شود. اگر روی -1 تنظیم شود (پیشفرض)، این نشاندهنده کوانتیزاسیون هر تانسور است. برای «lhs»، فقط کوانتیزاسیون هر تانسور پشتیبانی میشود. بنابراین، این باید روی -1 تنظیم شود. مقادیر دیگر باعث ایجاد خطا در ساخت OpKernel می شوند. |
---|
استاتیک عمومی UniformQuantizedAdd.Options outputQuantizationAxis (Long outputQuantizationAxis)
پارامترها
خروجی QuantizationAxis | شاخص بعد تانسور را نشان می دهد که در آن کوانتیزاسیون هر محور برای برش های امتداد آن بعد اعمال می شود. اگر روی -1 تنظیم شود (پیشفرض)، این نشاندهنده کوانتیزاسیون هر تانسور است. برای «خروجی»، فقط کوانتیزاسیون هر تانسور یا کمیتسازی هر کانال در امتداد «بعد_ویژگی_خروجی» پشتیبانی میشود. بنابراین، این باید روی -1 یا 'dimension_numbers.output_feature_dimension' تنظیم شود. مقادیر دیگر باعث ایجاد خطا در ساخت OpKernel می شوند. |
---|
عمومی ثابت UniformQuantizedAdd.Options rhsQuantizationAxis (Long rhsQuantizationAxis)
پارامترها
rhsQuantizationAxis | شاخص بعد تانسور را نشان می دهد که در آن کوانتیزاسیون هر محور برای برش های امتداد آن بعد اعمال می شود. اگر روی -1 تنظیم شود (پیشفرض)، این نشاندهنده کوانتیزاسیون هر تانسور است. برای «rhs»، فقط کوانتیزهسازی هر تانسور یا کمیسازی هر کانال در امتداد «بعد_ویژگی_خروجی_کرنل» پشتیبانی میشود. بنابراین، این باید روی -1 یا 'dimension_numbers.kernel_output_feature_dimension' تنظیم شود. مقادیر دیگر باعث ایجاد خطا در ساخت OpKernel می شوند. |
---|