'इनपुट' टेंसर को एक फ्लोट या bfloat16 टेंसर में डिक्वांटाइज़ करें।
[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))
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<double>(input) - lowest_quantized;
result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
स्केलिंग_फैक्टर को `min_range`, `max_range`, और `narow_range` से इस तरह से निर्धारित किया जाता है जो निम्नलिखित एल्गोरिदम का उपयोग करके `QuantizeAndDequantize{V2|V3}` और `QuantizeV2` के साथ संगत है:
const int min_expected_T = std::numeric_limits<T>::min() +
(narrow_range ? 1 : 0);
const int max_expected_T = std::numeric_limits<T>::max();
const float max_expected_T = std::numeric_limits<float>::max();
const float scale_factor =
(std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
: std::max(min_range / min_expected_T,
max_range / max_expected_T);
नेस्टेड क्लासेस
कक्षा | परिमाणीकरण.विकल्प | Dequantize के लिए वैकल्पिक विशेषताएँ |
स्थिरांक
डोरी | OP_NAME | इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है |
सार्वजनिक तरीके
आउटपुट <यू> | आउटपुट के रूप में () टेंसर का प्रतीकात्मक हैंडल लौटाता है। |
स्थैतिक DeQuantize.Options | अक्ष (लंबा अक्ष) |
स्थिर <U TNumber बढ़ाता है > परिमाणित करें <U> | |
स्थैतिक डीक्वांटाइज़ < TFloat32 > | |
स्थैतिक DeQuantize.Options | मोड (स्ट्रिंग मोड) |
स्थैतिक DeQuantize.Options | नैरोरेंज (बूलियन नैरोरेंज) |
आउटपुट <यू> | आउटपुट () |
विरासत में मिली विधियाँ
स्थिरांक
सार्वजनिक स्थैतिक अंतिम स्ट्रिंग OP_NAME
इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है
सार्वजनिक तरीके
सार्वजनिक आउटपुट <यू> आउटपुट के रूप में ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
TensorFlow संचालन के इनपुट किसी अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।
सार्वजनिक स्थैतिक Dequantize <U> बनाएं ( स्कोप स्कोप, ऑपरेंड <? विस्तारित TType > इनपुट, ऑपरेंड < TFloat32 > minRange, ऑपरेंड < TFloat32 > maxRange, क्लास<U> dtype, विकल्प... विकल्प)
एक नए डिक्वांटाइज़ ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
पैरामीटर
दायरा | वर्तमान दायरा |
---|---|
न्यूनतम श्रेणी | इनपुट के लिए संभवतः उत्पादित न्यूनतम स्केलर मान। |
अधिकतम सीमा | इनपुट के लिए संभवतः उत्पादित अधिकतम स्केलर मान। |
dtype | आउटपुट टेंसर का प्रकार. वर्तमान में Dequatize फ्लोट और bfloat16 का समर्थन करता है। यदि 'dtype' 'bfloat16' है, तो यह केवल 'MIN_COMBINED' मोड का समर्थन करता है। |
विकल्प | वैकल्पिक गुण मान रखता है |
रिटर्न
- डिक्वांटाइज़ का एक नया उदाहरण
सार्वजनिक स्थैतिक Dequantize < TFloat32 > create ( स्कोप स्कोप, ऑपरेंड <? विस्तारित TType > इनपुट, ऑपरेंड < TFloat32 > minRange, ऑपरेंड < TFloat32 > maxRange, विकल्प... विकल्प)
डिफ़ॉल्ट आउटपुट प्रकारों का उपयोग करके एक नया डिक्वांटाइज़ ऑपरेशन लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
पैरामीटर
दायरा | वर्तमान दायरा |
---|---|
न्यूनतम श्रेणी | इनपुट के लिए संभवतः उत्पादित न्यूनतम स्केलर मान। |
अधिकतम सीमा | इनपुट के लिए संभवतः उत्पादित अधिकतम स्केलर मान। |
विकल्प | वैकल्पिक गुण मान रखता है |
रिटर्न
- डिक्वांटाइज़ का एक नया उदाहरण