टेन्सरफ्लो::ऑप्स::टेन्सरएरेग्रैड
#include <data_flow_ops.h>दिए गए हैंडल में मानों के ग्रेडिएंट को संग्रहीत करने के लिए एक टेंसर ऐरे बनाता है।
सारांश
यदि दिया गया TensorArray ग्रेडिएंट पहले से मौजूद है, तो यह उसका संदर्भ लौटाता है।
यह फ़ंक्शन मूल TensorArray के आकार को उसके डायनामिक आकार फ़्लैग को निष्क्रिय करके लॉक कर देता है।
इनपुट फ्लो_इन के बारे में एक नोट:
हैंडल flow_in यह सुनिश्चित करता है कि ग्रेडिएंट लुकअप का निष्पादन कुछ अन्य ऑपरेशनों के पूरा होने के बाद ही हो। उदाहरण के लिए, जब फॉरवर्ड टेंसरएरे का आकार गतिशील रूप से निर्धारित होता है, तो इस टेंसरएरे में किए गए लेखन से ऑब्जेक्ट का आकार बदल सकता है। ग्रेडिएंट टेंसरएरे का आकार इस ऑपरेशन के निष्पादन के समय फॉरवर्ड टेंसरएरे के आकार के आधार पर स्थिर रूप से निर्धारित होता है। इसके अलावा, इस कॉल द्वारा फॉरवर्ड टेंसरएरे का आकार स्थिर कर दिया जाता है। परिणामस्वरूप, इस फ्लो का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि ग्रेडिएंट टेंसरएरे उत्पन्न करने का कॉल सभी लेखन कार्यों के पूरा होने के बाद ही हो।
गतिशील आकार वाले TensorArrays के मामले में, ग्रेडिएंट गणना केवल उन रीड ऑपरेशनों पर की जानी चाहिए जो फ्लो के माध्यम से इस तरह से संयोजित हों कि सभी राइट ऑपरेशन पूरे हो जाएं। इस तरह, जब यह ऑपरेशन कॉल किया जाता है, तब फॉरवर्ड TensorArray का अंतिम आकार ज्ञात होता है।
स्रोत विशेषता के बारे में एक नोट:
TensorArray ग्रेडिएंट कॉल एक एक्यूमुलेटर TensorArray ऑब्जेक्ट का उपयोग करते हैं। यदि एक ही सेशन में कई ग्रेडिएंट की गणना और रन किए जाते हैं, तो कई ग्रेडिएंट नोड्स गलती से एक ही एक्यूमुलेटर TensorArray से गुजर सकते हैं। इससे दोहरी गणना होती है और आमतौर पर TensorArray ग्रेडिएंट प्रवाह बाधित हो जाता है।
इसका समाधान यह पता लगाना है कि यह विशेष TensorArray ग्रेडिएंट किस ग्रेडिएंट कॉल में उपयोग किया जा रहा है। यह इनपुट ग्रेडिएंट टेंसर के नाम से एक अद्वितीय स्ट्रिंग (जैसे "gradients", "gradients_1", ...) की पहचान करके किया जाता है। इस स्ट्रिंग का उपयोग TensorArray ग्रेडिएंट ऑब्जेक्ट बनाते समय प्रत्यय के रूप में किया जाता है (विशेषता source )।
क्रिएशन/लुकअप करते समय फॉरवर्ड टेंसरएरे के नाम में एट्रीब्यूट source प्रत्यय के रूप में जोड़ा जाता है, ताकि प्रत्येक अलग ग्रेडिएंट गणना को अपना स्वयं का टेंसरएरे एक्यूमुलेटर मिल सके।
तर्क:
- स्कोप: एक स्कोप ऑब्जेक्ट
- हैंडल: फॉरवर्ड टेंसर ऐरे का हैंडल।
- flow_in: एक फ्लोट स्केलर जो ऑपरेशनों की उचित श्रृंखला को सुनिश्चित करता है।
- स्रोत: ग्रेडिएंट स्रोत स्ट्रिंग, जिसका उपयोग यह तय करने के लिए किया जाता है कि कौन सा ग्रेडिएंट टेंसर ऐरे लौटाया जाए।
प्रतिफल:
कंस्ट्रक्टर और डिस्ट्रक्टर | |
|---|---|
TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source) |
सार्वजनिक विशेषताएँ | |
|---|---|
flow_out | |
grad_handle | |
operation | |
सार्वजनिक विशेषताएँ
प्रवाह_बाहर
::tensorflow::Output flow_out
स्नातक_हैंडल
::tensorflow::Output grad_handle
संचालन
Operation operation
सार्वजनिक समारोह
टेन्सरएरेग्रैड
TensorArrayGrad( const ::tensorflow::Scope & scope, ::tensorflow::Input handle, ::tensorflow::Input flow_in, StringPiece source )