Dequantize

کلاس نهایی عمومی Dequantize

تانسور "ورودی" را به یک تانسور شناور یا bfloat16 تبدیل کنید.

[min_range، max_range] شناورهای اسکالر هستند که محدوده ای را برای خروجی مشخص می کنند. ویژگی 'mode' دقیقاً کنترل می کند که کدام محاسبات برای تبدیل مقادیر شناور به معادل های کوانتیزه شده آنها استفاده می شود.

در حالت "MIN_COMBINED"، هر مقدار تانسور تحت شرایط زیر قرار می گیرد:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
 
در اینجا "محدوده(T) = numeric_limits ::max() - numeric_limits ::min()`

مثال حالت MIN_COMBINED

اگر ورودی از QuantizedRelu6 باشد، نوع خروجی quint8 (محدوده 0-255) است اما محدوده احتمالی QuantizedRelu6 0-6 است. بنابراین مقادیر min_range و max_range 0.0 و 6.0 هستند. Dequantize در quint8 هر مقدار را می گیرد، ریخته می شود تا شناور شود، و در 6 / 255 ضرب می شود. توجه داشته باشید که اگر quantizedtype qint8 باشد، عملیات به علاوه هر مقدار را 128 قبل از ریخته گری اضافه می کند.

اگر حالت 'MIN_FIRST' باشد، از این روش استفاده می‌شود:

num_discrete_values = 1 << (# of bits in T)
 range_adjust = num_discrete_values / (num_discrete_values - 1)
 range = (range_max - range_min) * range_adjust
 range_scale = range / num_discrete_values
 const double offset_input = static_cast<double>(input) - lowest_quantized;
 result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
 
اگر حالت «مقیاس‌شده» باشد، کم‌آبی با ضرب هر مقدار ورودی در یک scaling_factor انجام می‌شود. (بنابراین ورودی 0 همیشه به 0.0 نشان داده می شود).

ضریب مقیاس‌بندی از «مین_محدوده»، «محدوده_حداکثر» و «محدوده_باریک» به‌گونه‌ای تعیین می‌شود که با «QuantizeAndDequantize{V2|V3}» و «QuantizeV2» سازگار است، با استفاده از الگوریتم زیر:

const int min_expected_T = std::numeric_limits<T>::min() +
     (narrow_range ? 1 : 0);
   const int max_expected_T = std::numeric_limits<T>::max();
   const float max_expected_T = std::numeric_limits<float>::max();
 
   const float scale_factor =
     (std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
                                          : std::max(min_range / min_expected_T,
                                                     max_range / max_expected_T);
 

کلاس های تو در تو

کلاس Dequantize.گزینه ها ویژگی های اختیاری برای Dequantize

ثابت ها

رشته OP_NAME نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود

روش های عمومی

خروجی <U>
asOutput ()
دسته نمادین تانسور را برمی گرداند.
استاتیک Dequantize.Options
محور (محور طولانی)
static <U TNumber را گسترش می دهد > Dequantize <U>
ایجاد (حوزه دامنه ، عملوند <? گسترش TType > ورودی، عملوند < TFloat32 > محدوده کوچک، عملوند < TFloat32 > maxRange، کلاس<U> نوع d، گزینه‌ها... گزینه‌ها)
روش Factory برای ایجاد کلاسی که یک عملیات Dequantize جدید را بسته بندی می کند.
استاتیک Dequantize < TFloat32 >
ایجاد (حوزه دامنه ، عملوند <؟ گسترش TType > ورودی، عملوند < TFloat32 > دامنه منی، عملوند < TFloat32 > حداکثر دامنه، گزینه‌ها... گزینه‌ها)
روش کارخانه برای ایجاد کلاسی که یک عملیات Dequantize جدید را با استفاده از انواع خروجی پیش‌فرض بسته بندی می‌کند.
استاتیک Dequantize.Options
حالت (حالت رشته ای)
استاتیک Dequantize.Options
محدوده باریک (محدوده باریک بولی)
خروجی <U>

روش های ارثی

ثابت ها

رشته نهایی ثابت عمومی OP_NAME

نام این عملیات، همانطور که توسط موتور هسته TensorFlow شناخته می شود

مقدار ثابت: "Dequantize"

روش های عمومی

خروجی عمومی <U> asOutput ()

دسته نمادین تانسور را برمی گرداند.

ورودی های عملیات TensorFlow خروجی های عملیات تنسورفلو دیگر هستند. این روش برای به دست آوردن یک دسته نمادین که نشان دهنده محاسبه ورودی است استفاده می شود.

محور عمومی استاتیک Dequantize.Options (محور طولانی)

عمومی استاتیک Dequantize <U> ایجاد ( دامنه دامنه ، عملوند <? گسترش TType > ورودی، عملوند < TFloat32 > minRange، عملوند < TFloat32 > maxRange، Class<U> dtype، گزینه‌ها... گزینه‌ها)

روش Factory برای ایجاد کلاسی که یک عملیات Dequantize جدید را بسته بندی می کند.

مولفه های
محدوده محدوده فعلی
محدوده مین حداقل مقدار اسکالر که احتمالاً برای ورودی تولید می شود.
حداکثر دامنه حداکثر مقدار اسکالر که احتمالاً برای ورودی تولید می شود.
dtype نوع تانسور خروجی در حال حاضر Dequantize از float و bfloat16 پشتیبانی می کند. اگر 'dtype' 'bfloat16' باشد، فقط از حالت 'MIN_COMBINED' پشتیبانی می کند.
گزینه ها مقادیر ویژگی های اختیاری را حمل می کند
برمی گرداند
  • نمونه جدیدی از Dequantize

عمومی استاتیک Dequantize < TFloat32 > ایجاد ( scope scope، Operand <? گسترش TType > input، Operand < TFloat32 > minRange، Operand < TFloat32 > maxRange، Options... گزینه ها)

روش کارخانه برای ایجاد کلاسی که یک عملیات Dequantize جدید را با استفاده از انواع خروجی پیش‌فرض بسته بندی می‌کند.

مولفه های
محدوده محدوده فعلی
محدوده مین حداقل مقدار اسکالر که احتمالاً برای ورودی تولید می شود.
حداکثر دامنه حداکثر مقدار اسکالر که احتمالاً برای ورودی تولید می شود.
گزینه ها مقادیر ویژگی های اختیاری را حمل می کند
برمی گرداند
  • نمونه جدیدی از Dequantize

حالت عمومی استاتیک Dequantize.Options (حالت رشته ای)

عمومی استاتیک Dequantize. Options narrowRange (Bolean narrowRange)

خروجی عمومی <U> خروجی ()