Google I/O एक लपेट है! TensorFlow सत्रों पर पकड़ बनाएं सत्र देखें

टेंसरफ़्लो :: ऑप्स :: QuantizeAndDequantizeV2

#include <array_ops.h>

तब मात्रा एक टेंसर को हटा देती है।

सारांश

इस सेशन ने निर्धारित मात्रा से आगे गुजरने वाले सटीक नुकसान का अनुकरण किया:

  1. टेंसर को नियत बिंदु संख्याओं पर परिमाणित करना, जो कि अनुमान लगाने के दौरान लक्ष्य परिमाणीकरण विधि से मेल खाना चाहिए।
  2. निम्न ऑप्स के लिए फ़्लोटिंग पॉइंट नंबरों पर इसे हटाते हुए, सबसे अधिक संभावना है मटमुल।

अलग-अलग तरीके हैं। यह संस्करण केवल स्केलिंग का उपयोग करता है, इसलिए 0.0 मानचित्र 0 से।

निर्धारित आउटपुट प्रकार में निर्दिष्ट 'num_bits' से, यह न्यूनतम और अधिकतम प्रतिनिधित्व योग्य मात्रा निर्धारित करता है।

जैसे

  • [-128, 127] पर हस्ताक्षर के लिए, num_bits = 8, या
  • [0, 255] अहस्ताक्षरित, संख्या_ के लिए = 8।

यदि range_given == गलत है, तो शुरुआती input_min, input_max इनपुट टेंसर में न्यूनतम और अधिकतम मान के रूप में स्वचालित रूप से निर्धारित किया जाएगा, अन्यथा input_min के निर्दिष्ट मान, input_max का उपयोग किया जाता है।

नोट: यदि input_min, input_max निर्दिष्ट किया गया है, तो उन्हें टेंसर में वास्तविक न्यूनतम और अधिकतम मान को बराबर करने की आवश्यकता नहीं है। उदाहरण के लिए, कुछ मामलों में इन मूल्यों को निर्दिष्ट करना फायदेमंद हो सकता है, जैसे कि इनपुट वितरण की कम प्रायिकता चरम सीमा पर होती है।

यह ऑप अधिकतम मापक_फैक्टर निर्धारित करता है जो प्रारंभिक [input_min, input_max] रेंज को एक सीमा तक दर्शाएगा जो कि प्रतिनिधित्व योग्य परिमाणित सीमा के भीतर है।

यह input_min और input_max में से किसी एक से पैमाना निर्धारित करता है, फिर दूसरे को अद्यतन करने योग्य रेंज को अधिकतम करने के लिए अद्यतन करता है।

जैसे

  • यदि आउटपुट पर हस्ताक्षर किए जाते हैं, तो num_bits = 8, [input_min, input_max] = [-10.0, 5.0]: यह -128 के एक स्केल_फैक्टर / -10.0 = 12.8 का उपयोग करेगा। इस मामले में, यह input_max को 127 / 12.8 = में बदल देगा। 9.921875 पर
  • यदि आउटपुट पर हस्ताक्षर किए गए हैं, तो num_bits = 8, [input_min, input_max] = [-10.0, 10.0]: यह 127 / 10.0 = 12.7 के पैमाने_ का उपयोग करेगा। इस मामले में, यह इनपुट -min को 128.0 / 12.7 =-10.07874 में अपडेट करेगा।
  • यदि आउटपुट अहस्ताक्षरित है, तो input_min 0 होने के लिए मजबूर किया जाता है, और केवल निर्दिष्ट input_max का उपयोग किया जाता है।

Scale_factor को निर्धारित करने और इनपुट रेंज को अपडेट करने के बाद, यह 'input' टेंसर में प्रत्येक मान पर लागू होता है।

आउटपुट = राउंड (क्लैंप (मान, input_min, input_max) * scale_factor) / scale_factor।

उपरोक्त राउंड फ़ंक्शन दिए गए राउंड_मोड के आधार पर मूल्य को गोल करता है।

तर्क:

  • गुंजाइश: एक स्कोप ऑब्जेक्ट
  • इनपुट: Tensor मात्रा और फिर dequantize।
  • input_min: अगर range_given == True , तो यह न्यूनतम इनपुट मूल्य को निर्दिष्ट करता है जिसे प्रतिनिधित्व करने की आवश्यकता होती है, अन्यथा यह input टेंसर के न्यूनतम मूल्य से निर्धारित होता है।
  • input_max: अगर range_given == True , तो यह अधिकतम इनपुट मूल्य को निर्दिष्ट करता है जिसे प्रतिनिधित्व करने की आवश्यकता है, अन्यथा यह input टेंसर के अधिकतम मूल्य से निर्धारित होता है।

वैकल्पिक विशेषताएँ ( Attrs देखें):

  • हस्‍ताक्षरित: साइन इन करें (वास्तव में इस पैरामीटर को signed_output कहा जाना चाहिए)
  • num_bits: परिमाणीकरण का बिटकॉइन।
  • range_given: क्या रेंज दी गई है या input टेंसर से निर्धारित की जानी चाहिए।
  • राउंड_मोड: 'राउंड_मोड' विशेषता नियंत्रण करती है कि राउंड-ब्रेकिंग एल्गोरिथ्म का उपयोग तब किया जाता है जब फ्लोटिंग वैल्यू को उनके मात्रात्मक समकक्षों में गोल किया जाता है। निम्नलिखित गोलाई मोड वर्तमान में समर्थित हैं:
  • HALF_TO_EVEN: यह डिफ़ॉल्ट राउंड_मोड है।
  • HALF_UP: सकारात्मक की ओर गोल। इस विधा में 7.5 राउंड 8 तक और -7.5 राउंड -7 तक।
  • संकीर्ण_रेंज: यदि सही है, तो परिमाणित न्यूनतम मान का पूर्ण मान 1 से अधिक के बजाय, परिमाणित अधिकतम मान के समान है। यानी 8 बिट परिमाणीकरण के लिए -128 के बजाय न्यूनतम मान -127 है।

रिटर्न:

  • Output : आउटपुट टेंसर।

कंस्ट्रक्टर और डिस्ट्रक्टर्स

QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max)
QuantizeAndDequantizeV2 (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input input_min, :: tensorflow::Input input_max, const QuantizeAndDequantizeV2::Attrs & attrs)

सार्वजनिक विशेषताएँ

operation
output

सार्वजनिक कार्य

node () const
::tensorflow::Node *
operator::tensorflow::Input () const
operator::tensorflow::Output () const

सार्वजनिक स्थैतिक कार्य

NarrowRange (bool x)
NumBits (int64 x)
RangeGiven (bool x)
RoundMode (StringPiece x)
SignedInput (bool x)

संरचनाएं

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

वैकल्पिक विशेषता QuantizeAndDequantizeV2 के लिए बसती है

सार्वजनिक विशेषताएँ

ऑपरेशन

Operation operation

उत्पादन

::tensorflow::Output output

सार्वजनिक कार्य

QuantizeAndDequantizeV2

 QuantizeAndDequantizeV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max
)

QuantizeAndDequantizeV2

 QuantizeAndDequantizeV2(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max,
  const QuantizeAndDequantizeV2::Attrs & attrs
)

नोड

::tensorflow::Node * node() const 

ऑपरेटर :: टेंसरफ़्लो :: इनपुट

 operator::tensorflow::Input() const 
है

ऑपरेटर :: टेंसोफ़्लो :: आउटपुट

 operator::tensorflow::Output() const 

सार्वजनिक स्थैतिक कार्य

छोटी परास

Attrs NarrowRange(
  bool x
)

अंक

Attrs NumBits(
  int64 x
)

रेंजगिवेन

Attrs RangeGiven(
  bool x
)

राउंडमोड

Attrs RoundMode(
  StringPiece x
)

हस्ताक्षर किया हुआ

Attrs SignedInput(
  bool x
)