2015-11-17 4 views
47

डिफ़ॉल्ट वैश्विक ग्राफ के साथ काम करते समय, क्या जोड़े जाने के बाद नोड्स को निकालना संभव है, या वैकल्पिक रूप से डिफ़ॉल्ट ग्राफ को खाली करने के लिए रीसेट करना संभव है? आईपीथॉन में टीएफ के साथ इंटरैक्टिव रूप से काम करते समय, मुझे लगता है कि मुझे बार-बार कर्नेल को पुनरारंभ करना पड़ता है। यदि संभव हो तो मैं ग्राफ के साथ अधिक आसानी से प्रयोग करने में सक्षम होना चाहूंगा।ग्राफ से नोड्स निकालें या पूरे डिफ़ॉल्ट ग्राफ को रीसेट करें

उत्तर

71

अद्यतन 11/2/2016

tf.reset_default_graph()

पुराने सामान

वहाँ reset_default_graph, लेकिन सार्वजनिक एपीआई (मुझे लगता है कि यह होना चाहिए, किसी ने file an issue करना चाहता है का हिस्सा नहीं गिटहब पर?)

चीजों को रीसेट करने के लिए मेरा काम-आसपास यह है:

from tensorflow.python.framework import ops 
ops.reset_default_graph() 
sess = tf.InteractiveSession() 
30

डिफ़ॉल्ट रूप से, डिफ़ॉल्ट ग्राफ के आस-पास एक सत्र बनाया जाता है। सत्र में मृत नोड्स छोड़ने से बचने के लिए, आपको या तो डिफ़ॉल्ट ग्राफ को नियंत्रित करने या एक स्पष्ट ग्राफ का उपयोग करने की आवश्यकता है।

  • डिफ़ॉल्ट ग्राफ को साफ़ करने के लिए, आप tf.reset_default_graph फ़ंक्शन का उपयोग कर सकते हैं।

    tf.reset_default_graph() 
    sess = tf.InteractiveSession() 
    
  • तुम भी स्पष्ट रूप से एक ग्राफ का निर्माण और डिफ़ॉल्ट एक का उपयोग कर बच सकते हैं। यदि आप सामान्य Session का उपयोग करते हैं, तो आपको सत्र बनाने से पहले ग्राफ को पूरी तरह से बनाना होगा। InteractiveSession के लिए, तुम सिर्फ ग्राफ घोषणा कर सकते हैं और एक संदर्भ के रूप में उपयोग आगे के परिवर्तन की घोषणा करने के:

    g = tf.Graph() 
    sess = tf.InteractiveSession(graph=g) 
    with g.asdefault(): 
        # Put variable declaration and other tf operation 
        # in the graph context 
        .... 
        b = tf.matmul(A, x) 
        .... 
    
    sess.run([b], ...) 
    

संपादित करें: tensorflow के हाल के संस्करणों के लिए (1.0+), सही समारोह g.as_default है।

+2

tensorflow> = 1.0 में, यह 'g.as_default()' –

+0

वर्तनी है: बयान में आप g.as_default() – user3750988

+0

में अंडरस्कोर भूल गए हैं, इसलिए मुझे यह खुशी मिली। मुझे पागल कर रहा है ... –

3

आईपीथॉन/जुपीटर नोटबुक कोशिकाएं सेल के रनों के बीच स्थिति रखती हैं।

एक कस्टम ग्राफ बनाएँ:

def main(): 
    # Define your model 
    data = tf.placeholder(...) 
    model = ... 

with tf.Graph().as_default(): 
    main() 

एक बार भाग गया, ग्राफ ऊपर साफ किया जाता है।

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