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

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

#include <data_flow_ops.h>

दिए गए हैंडल में मूल्यों के ग्रेडिएटर्स को संग्रहीत करने के लिए एक TensorArray बनाता है।

सारांश

यदि दी गई TensorArray ग्रेडिएंट पहले से मौजूद है, तो इसका संदर्भ देता है।

मूल TensorArray के आकार को उसके गतिशील आकार ध्वज को अक्षम करके लॉक करता है।

इनपुट flow_in के बारे में एक नोट:

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

TensorArrays के गतिशील रूप से आकार के मामले में, ढाल की गणना केवल पढ़ने के संचालन पर की जानी चाहिए जो कि सभी लेखन के निष्पादित होने के बाद ही प्रवाह के माध्यम से जंजीर हो गई है। इस तरह से इस ऑपरेशन को कहा जाता है, आगे टेन्सॉरअरे का अंतिम आकार ज्ञात होता है।

स्रोत विशेषता के बारे में एक नोट:

TensorArray ग्रेडिएंट कॉल्स एक संचायक TensorArray ऑब्जेक्ट का उपयोग करते हैं। यदि एक ही सत्र में कई ग्रेडिएंट्स की गणना और रन किया जाता है, तो कई ग्रेडिएंट नोड्स गलती से एक ही संचायक TensorArray के माध्यम से प्रवाह कर सकते हैं। यह डबल मायने रखता है और आम तौर पर TensorArray ग्रेडिएंट प्रवाह को तोड़ता है।

समाधान की पहचान करना है कि कौन सा ग्रेडिएंट कॉल करता है इस विशेष TensorArray ग्रेडिएंट को बुलाया जा रहा है। यह इनपुट ग्रेडिएंट Tensor के नाम से एक अद्वितीय स्ट्रिंग (जैसे "ग्रेडिएंट", "gradients_1", ...) की पहचान करके किया जाता है। इस स्ट्रिंग का उपयोग एक प्रत्यय के रूप में किया जाता है जब यहां TensorArray ग्रेडिएंट ऑब्जेक्ट बनाते हैं (विशेषता source )।

निर्माण / लुकअप करते समय विशेषता source को आगे TensorArray के नाम के प्रत्यय के रूप में जोड़ा जाता है, ताकि प्रत्येक अलग-अलग ग्रेडिएंट गणना को अपना TensorArray संचायक प्राप्त हो।

तर्क:

  • गुंजाइश: एक स्कोप ऑब्जेक्ट
  • संभाल: आगे TensorArray के लिए संभाल।
  • flow_in: एक फ्लोट स्केलर जो संचालन की उचित श्रृंखला को लागू करता है।
  • source: ग्रेडिएंट सोर्स स्ट्रिंग, यह तय करने के लिए इस्तेमाल किया जाता है कि कौन सा ग्रेडिएंट TensorArray वापस लौटे।

रिटर्न:

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

TensorArrayGrad (const :: tensorflow::Scope & scope, :: tensorflow::Input handle, :: tensorflow::Input flow_in, StringPiece source)

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

flow_out
grad_handle
operation

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

बह जाना

::tensorflow::Output flow_out

grad_handle

::tensorflow::Output grad_handle

ऑपरेशन

Operation operation

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

TensorArrayGrad

 TensorArrayGrad(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input handle,
  ::tensorflow::Input flow_in,
  StringPiece source
)