از اینکه با Google I/O تنظیم کردید متشکریم. مشاهده همه جلسات در صورت تقاضا تماشا کنید

tensorflow :: ops :: كوك كردن

#include <array_ops.h>

Dequantize از 'ورودی تانسور را به یک شناور تانسور .

خلاصه

[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))
اینجا range(T) = numeric_limits ::max() - numeric_limits ::min() range(T) = numeric_limits ::max() - numeric_limits ::min() range(T) = numeric_limits ::max() - numeric_limits ::min()

MIN_COMBINED مثال حالت

اگر ورودی از یک QuantizedRelu6 گرفته شود ، نوع خروجی آن quint8 است (دامنه 0-255) اما محدوده احتمالی QuantizedRelu6 0-6 است. مقادیر min_range و max_range برابر 0.0 و 6.0 هستند. با كیك كردن quint8 هر مقدار گرفته می شود ، برای شناور فرستاده می شود و در 6/255 ضرب می شود. توجه داشته باشید كه اگر نوع quantizedty 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(input) - lowest_quantized;
result = range_min + ((input - numeric_limits::min()) * range_scale)

حالت SCALED به عنوان مثال

حالت SCALED با رویه کوانتاسیون استفاده شده در QuantizeAndDequantize{V2|V3} مطابقت دارد.

اگر حالت SCALED ، ما از طیف وسیعی از نوع خروجی استفاده نمی کنیم و کمترین مقدار ممکن را برای تقارن انتخاب می کنیم (به عنوان مثال ، دامنه خروجی -127 تا 127 است ، نه -128 تا 127 برای کوانتاسیون 8 بیتی امضا شده) به طوری که 0.0 نقشه را به 0 نشان می دهد.

ابتدا محدوده مقادیر را در تنسور خود پیدا می کنیم. محدوده ای که ما استفاده می کنیم همیشه بر روی 0 متمرکز است ، بنابراین ما m را به عنوان

  m = max(abs(input_min), abs(input_max))
می یابیم

دامنه تانسور ورودی ما سپس [-m, m] .

بعد ، سطلهای کوانتیزه کردن در نقطه ثابت خود را انتخاب می کنیم ، [min_fixed, max_fixed] . اگر T امضا شده باشد ، این

  num_bits = sizeof(T) * 8
  [min_fixed, max_fixed] =
      [-(1 << (num_bits - 1) - 1), (1 << (num_bits - 1)) - 1]
است

در غیر این صورت ، اگر T امضا نشده باشد ، محدوده نقطه ثابت

  [min_fixed, max_fixed] = [0, (1 << num_bits) - 1]
است

ما از این فاکتور مقیاس گذاری ، s:

  s = (2 * m) / (max_fixed - min_fixed)
محاسبه می کنیم

اکنون می توانیم عناصر تنسور خود را از حالت کمیت تقسیم کنیم:

result = input * s

استدلال ها:

  • دامنه: یک شی Sc Scope
  • min_range: حداقل مقدار اسکالر که برای ورودی تولید می شود.
  • max_range: حداکثر مقدار اسکالر که برای ورودی تولید می شود.

بازده:

  • Output : تانسور خروجی.

سازندگان و ویرانگران

Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range)
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range, const Dequantize::Attrs & attrs)

صفات عمومی

operation
output

کارکردهای عمومی

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

توابع استاتیک عمومی

Mode (StringPiece x)

سازه ها

tensorflow :: ops :: Dequantize :: Attrs

تنظیم کننده های ویژگی اختیاری برای Dequantize .

صفات عمومی

عمل

Operation operation

خروجی

::tensorflow::Output output

کارکردهای عمومی

كوك كردن

 Dequantize(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input min_range,
  ::tensorflow::Input max_range
)

كوك كردن

 Dequantize(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input min_range,
  ::tensorflow::Input max_range,
  const Dequantize::Attrs & attrs
)

گره

::tensorflow::Node * node() const 

عملگر :: tensorflow :: ورودی

 operator::tensorflow::Input() const 

عملگر :: tensorflow :: خروجی

 operator::tensorflow::Output() const 

توابع استاتیک عمومی

حالت

Attrs Mode(
  StringPiece x
)