我在做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/'))
所產生的問題了。
以上這篇Tensorflow 實現釋放內存就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。
新聞熱點
疑難解答