Tensorflow 釋放內存

我在做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/'))
所產生的問題了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章