यह एक सामान्य प्रश्न है। मैंने पाया कि tensorflow में, हम ग्राफ बनाने के बाद, ग्राफ में डेटा लाते हैं, ग्राफ से आउटपुट एक टेंसर है। लेकिन कई मामलों में, हमें इस आउटपुट के आधार पर कुछ गणना करने की आवश्यकता है (जो tensor
है), जिसे टेंसफोर्लो में अनुमति नहीं है।tensorflow में tf.while_loop() का उपयोग कैसे करें
उदाहरण के लिए, मैं एक आरएनएन लागू करने की कोशिश कर रहा हूं, जो डेटा स्वयं संपत्ति के आधार पर समय को लूप करता है। यही है, मुझे यह तय करने के लिए tensor
का उपयोग करने की आवश्यकता है कि मुझे रोकना चाहिए (मैं अपने डिजाइन में गतिशील_आरएनएन का उपयोग नहीं कर रहा हूं, आरएनएन अत्यधिक अनुकूलित है)। मुझे लगता है कि tf.while_loop(cond,body.....)
मेरे कार्यान्वयन के लिए एक उम्मीदवार हो सकता है। लेकिन आधिकारिक ट्यूटोरियल बहुत आसान है। मुझे नहीं पता कि 'शरीर' में और अधिक कार्यक्षमताओं को कैसे जोड़ा जाए। क्या कोई मुझे कुछ और जटिल उदाहरण दे सकता है?
इसके अलावा, इस तरह के मामले में यदि भविष्य की गणना टेंसर आउटपुट (पूर्व: आउटपुट मानदंड के आधार पर आरएनएन स्टॉप) पर आधारित है, जो बहुत आम मामला है। क्या गतिशील ग्राफ की जगह एक सुरुचिपूर्ण तरीका या बेहतर तरीका है?
अच्छी व्याख्या। मेरी समस्या 'शर्त' है जिसे मुझे एक बार 'शरीर' चलाने के बाद गणना की जाती है। तो ऐसा लगता है कि मुझे 'स्थिति' के लिए पैरामीटर के रूप में शरीर के वापसी मूल्य का उपयोग करने की आवश्यकता है। –
आप जो चाहते हैं वह ठीक है जो होता है। लूप 'जबकि (हालत (टेंसर)) {टेंसर = शरीर (टेंसर) है; } ', इसलिए आपके द्वारा पास किए गए टेंसर को हर बार शरीर द्वारा लौटाए गए टेंसर में अपडेट किया जाता है, और फिर उन अद्यतन टेंसर को' स्थिति 'में भेज दिया जाता है। उपरोक्त छद्म कोड लूप के शरीर में प्रवेश करने से पहले, 'बॉडी' पहले * समय से पहले एक ही समय 'शर्त' कहा जाता है। हालांकि, उस स्थिति में, यह केवल 'loop_vars' में आपके द्वारा पारित टेंसर को प्रारंभ करने के बारे में है। उदाहरण के लिए, आप 'body' के परिणाम को' loop_vars' टेंसर के रूप में 'while_loop' पर पास कर सकते हैं। –
ओह, 'loop_vars' के साथ मैं 'while_loop' की फ़ंक्शन परिभाषा का संदर्भ देता हूं, जो' while_loop (हालत, शरीर, loop_vars) 'है (यह टेंसर जो' स्थिति 'और' body' को पास किए जाते हैं) –