2016-08-29 10 views
5

मैं वस्तुओं को एनक्यू करना चाहता हूं, यह सुनिश्चित करने के लिए कतार बंद करें कि अन्य सत्र सभी शेष वस्तुओं को हटा देंगे, फिर इसे अगले युग के लिए बाद में फिर से खोलें। क्या यह संभव है?क्या बंद होने के बाद एक टेंसरफ्लो कतार फिर से खोला जा सकता है?

q = tf.FIFOQueue(...) 
close_q = q.close() 
reopen_q = #??? 

with tf.Session([...]) as sess: 
    [...] 
    sess.run(close_q) 
    [...] 
    sess.run(reopen_q) 

उत्तर

10

को एक बंद कतार को फिर से खोलने का कोई तरीका नहीं है, लेकिन (केवल यदि आप कई सत्रों का उपयोग कर रहे हैं) वहाँ एक समाधान ::

  1. एक with tf.container(name): ब्लॉक कि लपेटता में अपने कतार बनाएं है केवल कतार, और name किसी अन्य tf.container() ब्लॉक के लिए उपयोग नहीं किया जाता है।

  2. इससे पहले कि आप कतार फिर से खोलना, tf.Session.reset(..., [name]), जहां name कंटेनर आपने चरण 1 में बनाया का नाम है फोन इस कारण होगा कतार अपनी अगली उपयोग पर फिर से बनाना चाहते हैं, और इसे खोला में होगा राज्य।

+0

बार-बार धन्यवाद! :) – MiniQuark

+0

धन्यवाद, वही है जो मैं देख रहा था! – lhlmgr

+7

डॉट्स के बजाय आप क्या डालते हैं? जब मैं 'tf.Session.reset (target = none, [name]) 'कहता हूं, सत्र बंद हो जाएगा। क्या मुझे तब एक नया सत्र बनाना है? चीयर्स! – lhlmgr

संबंधित मुद्दे