tensorflow:: ops:: Dequantize

#include <array_ops.h>

'ইনপুট' টেনসরটিকে একটি ফ্লোট টেনসরে ডিকোয়ান্টাইজ করুন ।

সারসংক্ষেপ

[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()

MIN_COMBINED মোডের উদাহরণ

যদি ইনপুট QuantizedRelu6 থেকে আসে, তাহলে আউটপুট টাইপ হবে quint8 (রেঞ্জ ০-২৫৫), কিন্তু QuantizedRelu6- এর সম্ভাব্য রেঞ্জ হলো ০-৬। সুতরাং min_range এবং max_range-এর মান হবে যথাক্রমে ০.০ এবং ৬.০। quint8-এর উপর Dequantize অপারেশনটি প্রতিটি মানকে float-এ কাস্ট করবে এবং 6 / 255 দিয়ে গুণ করবে। উল্লেখ্য যে, যদি quantizedtype qint8 হয়, তাহলে অপারেশনটি কাস্ট করার আগে প্রতিটি মানের সাথে অতিরিক্তভাবে ১২৮ যোগ করবে।

যদি মোড '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 মোডটি QuantizeAndDequantize{V2|V3} -এ ব্যবহৃত কোয়ান্টাইজেশন পদ্ধতির সাথে সামঞ্জস্যপূর্ণ।

যদি মোডটি SCALED হয়, তাহলে আমরা আউটপুট টাইপের সম্পূর্ণ পরিসর ব্যবহার করি না, বরং প্রতিসাম্যের জন্য সর্বনিম্ন সম্ভাব্য মানটি বাদ দিই (যেমন, সাইনড ৮-বিট কোয়ান্টাইজেশনের জন্য আউটপুট পরিসর -১২৭ থেকে ১২৭, -১২৮ থেকে ১২৭ নয়), যাতে ০.০, ০-তে ম্যাপ করে।

প্রথমে আমরা আমাদের টেনসরের মানগুলির পরিসর নির্ণয় করি। আমরা যে পরিসরটি ব্যবহার করি তা সর্বদা 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

যুক্তি:

  • স্কোপ: একটি স্কোপ অবজেক্ট
  • 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 

অপারেটর::টেনসরফ্লো::ইনপুট

 operator::tensorflow::Input() const 

অপারেটর::টেনসরফ্লো::আউটপুট

 operator::tensorflow::Output() const 

পাবলিক স্ট্যাটিক ফাংশন

মোড

Attrs Mode(
  StringPiece x
)