StopGradient

सार्वजनिक अंतिम वर्ग स्टॉपग्रैडिएंट

ग्रेडिएंट गणना रोक देता है.

जब ग्राफ़ में निष्पादित किया जाता है, तो यह ऑप अपने इनपुट टेंसर को उसी रूप में आउटपुट करता है।

ग्रेडिएंट्स की गणना करने के लिए ऑप्स बनाते समय, यह ऑप इसके इनपुट के योगदान को ध्यान में रखने से रोकता है। आम तौर पर, ग्रेडिएंट जनरेटर एक निर्दिष्ट 'नुकसान' के डेरिवेटिव की गणना करने के लिए ग्राफ में ऑप्स जोड़ता है, जो इसकी गणना में योगदान देने वाले इनपुट का पुनरावर्ती रूप से पता लगाता है। यदि आप इस ऑप को ग्राफ़ में सम्मिलित करते हैं तो इसका इनपुट ग्रेडिएंट जनरेटर से छिपा हुआ है। कंप्यूटिंग ग्रेडिएंट्स के लिए उन्हें ध्यान में नहीं रखा जाता है।

यह तब उपयोगी होता है जब आप TensorFlow के साथ किसी मान की गणना करना चाहते हैं, लेकिन यह दिखावा करना होगा कि मान स्थिर था। उदाहरण के लिए, वेक्टर x के लिए सॉफ्टमैक्स फ़ंक्शन को इस प्रकार लिखा जा सकता है

def softmax(x):
     numerator = tf.exp(x)
     denominator = tf.reduce_sum(numerator)
     return numerator / denominator
 
हालाँकि, यदि x में मान बड़े हैं तो यह अतिप्रवाह के लिए अतिसंवेदनशील है। एक वैकल्पिक अधिक स्थिर तरीका प्रत्येक मान से अधिकतम x घटाना है।
def stable_softmax(x):
     z = x - tf.reduce_max(x)
     numerator = tf.exp(z)
     denominator = tf.reduce_sum(numerator)
     return numerator / denominator
 
हालाँकि, जब हम सॉफ्टमैक्स से x तक बैकप्रॉप करते हैं, तो हम tf.reduce_max(x) (यदि अधिकतम मान अद्वितीय नहीं हैं तो ग्रेडिएंट गलत इनपुट पर प्रवाहित हो सकता है) गणना के माध्यम से बैकप्रॉप नहीं करना चाहते हैं और इसे एक स्थिरांक के रूप में मानते हैं। इसलिए, हमें इसे इस प्रकार लिखना चाहिए
def stable_softmax(x):
     z = x - tf.stop_gradient(tf.reduce_max(x))
     numerator = tf.exp(z)
     denominator = tf.reduce_sum(numerator)
     return numerator / denominator
 
कुछ अन्य उदाहरणों में शामिल हैं:
  • ईएम एल्गोरिदम जहां एम-स्टेप में ई-स्टेप के आउटपुट के माध्यम से बैकप्रोपेगेशन शामिल नहीं होना चाहिए।
  • बोल्ट्ज़मैन मशीनों का विरोधाभासी विचलन प्रशिक्षण, जहां ऊर्जा फ़ंक्शन को अलग करते समय, प्रशिक्षण को उस ग्राफ़ के माध्यम से बैकप्रोपेगेट नहीं करना चाहिए जो मॉडल से नमूने उत्पन्न करता है।
  • प्रतिकूल प्रशिक्षण, जहां प्रतिकूल उदाहरण निर्माण प्रक्रिया के माध्यम से कोई बैकप्रॉप नहीं होना चाहिए।

सार्वजनिक तरीके

आउटपुट <T>
आउटपुट के रूप में ()
टेंसर का प्रतीकात्मक हैंडल लौटाता है।
स्थिर <टी> स्टॉपग्रेडिएंट <टी>
बनाएं ( स्कोप स्कोप, ऑपरेंड <T> इनपुट)
एक नए स्टॉपग्रैडिएंट ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
आउटपुट <T>

विरासत में मिली विधियाँ

सार्वजनिक तरीके

सार्वजनिक आउटपुट <T> asOutput ()

टेंसर का प्रतीकात्मक हैंडल लौटाता है।

TensorFlow संचालन के इनपुट किसी अन्य TensorFlow ऑपरेशन के आउटपुट हैं। इस पद्धति का उपयोग एक प्रतीकात्मक हैंडल प्राप्त करने के लिए किया जाता है जो इनपुट की गणना का प्रतिनिधित्व करता है।

सार्वजनिक स्थैतिक स्टॉपग्रेडिएंट <टी> बनाएं ( स्कोप स्कोप, ऑपरेंड <टी> इनपुट)

एक नए स्टॉपग्रैडिएंट ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।

पैरामीटर
दायरा वर्तमान दायरा
रिटर्न
  • स्टॉपग्रैडिएंट का एक नया उदाहरण

सार्वजनिक आउटपुट <T> आउटपुट ()