टेंसरफ़्लो:: ऑप्स:: परिमाणीकरण करें

#include <array_ops.h>

'इनपुट' टेंसर को फ्लोट टेंसर में डिक्वांटाइज़ करें

सारांश

[min_range, max_range] स्केलर फ़्लोट हैं जो 'इनपुट' डेटा के लिए सीमा निर्दिष्ट करते हैं। 'मोड' विशेषता ठीक से नियंत्रित करती है कि फ्लोट मानों को उनके परिमाणित समकक्षों में परिवर्तित करने के लिए कौन सी गणनाओं का उपयोग किया जाता है।

'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 मोड उदाहरण

यदि इनपुट क्वांटाइज्डरेलु6 से आता है, तो आउटपुट प्रकार क्विंट8 (0-255 की रेंज) है लेकिन क्वांटाइज्डरेलु6 की संभावित रेंज 0-6 है। इसलिए min_range और max_range मान 0.0 और 6.0 हैं। क्विंट8 पर डीक्वेंटाइज प्रत्येक मान लेगा, फ्लोट करने के लिए कास्ट करेगा, और 6/255 से गुणा करेगा। ध्यान दें कि यदि क्वांटाइज्डटाइप क्विंट8 है, तो ऑपरेशन कास्टिंग से पहले प्रत्येक मान को 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 मोड QuantizeAndDequantize{V2|V3} में प्रयुक्त परिमाणीकरण दृष्टिकोण से मेल खाता है।

यदि मोड SCALED है, तो हम आउटपुट प्रकार की पूरी रेंज का उपयोग नहीं करते हैं, समरूपता के लिए न्यूनतम संभव मान को बढ़ाना चुनते हैं (उदाहरण के लिए, आउटपुट रेंज -127 से 127 है, हस्ताक्षरित 8 बिट परिमाणीकरण के लिए -128 से 127 नहीं), ताकि 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

तर्क:

  • स्कोप: एक स्कोप ऑब्जेक्ट
  • 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)

संरचनाएँ

टेंसरफ़्लो:: ऑप्स:: डिक्वांटाइज़:: एटर्स

Dequatize के लिए वैकल्पिक विशेषता सेटर्स।

सार्वजनिक गुण

संचालन

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
)