tensorflow:: ops:: Dequantize
#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() MIN_COMBINED मोड का उदाहरण
यदि इनपुट QuantizedRelu6 से आता है, तो आउटपुट प्रकार quint8 (रेंज 0-255) होता है, लेकिन QuantizedRelu6 की संभावित रेंज 0-6 है। इसलिए min_range और max_range मान क्रमशः 0.0 और 6.0 हैं। 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(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) | |
संरचनाएँ | |
|---|---|
| टेन्सरफ्लो::ऑप्स::डिक्वांटाइज़::एट्रिब्यूट्स | डीक्वांटाइज़ के लिए वैकल्पिक विशेषता निर्धारक। |
सार्वजनिक विशेषताएँ
संचालन
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 )