टेंसरफ़्लो:: ऑप्स:: परिमाणीकरण करें
#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]
चुनते हैं। यदि टी पर हस्ताक्षर किया गया है, तो यह है
num_bits = sizeof(T) * 8 [min_fixed, max_fixed] = [-(1 << (num_bits - 1) - 1), (1 << (num_bits - 1)) - 1]
अन्यथा, यदि टी अहस्ताक्षरित है, तो निश्चित-बिंदु सीमा है
[min_fixed, max_fixed] = [0, (1 << num_bits) - 1]
इससे हम अपने स्केलिंग फैक्टर की गणना करते हैं:
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 )