我在做tensorflow開發的時候遇到如下的錯誤,我請教了深度學習社區q羣中的大神,大神說這是運算圖還在內存中,沒有及時釋放,需要restart一下kernel,但是由於我的代碼不能停止執行,所以沒辦法用重新運行代碼來解決釋放內存運行圖的問題。
問題:
with tf.Session() as sess:
saver = tf.train.Saver() #保存運算圖
當我退出with並且立馬執行
self.sess = tf.Session() self.saver = tf.train.import_meta_graph('./Model/model.ckpt.meta') self.saver.restore(self.sess, tf.train.latest_checkpoint('./Model/'))
的時候由於session和graph沒有釋放內存的運算圖就產生了報錯,
解決辦法:
在with tf.Session() as sess: 之後同時也要在with的範圍以外(注意),添加
tf.reset_default_graph()
代碼來重置默認的圖,這樣就能解決我下一步執行代碼
self.sess = tf.Session() self.saver = tf.train.import_meta_graph('./Model/model.ckpt.meta') self.saver.restore(self.sess, tf.train.latest_checkpoint('./Model/'))所產生的問題了。