国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

解決Tensorflow 內存泄露問題

2020-02-15 21:24:05
字體:
來源:轉載
供稿:網友

使用tensorflow進行編程時,經常遇到操作不當,帶來的內存泄露問題,這里有一個可以幫助debug問題所在方法:

https://stackoverflow.com/questions/51175837/tensorflow-runs-out-of-memory-while-computing-how-to-find-memory-leaks/51183870#51183870

使用tf.Graph.finalize()把運算圖變成只讀的,從而對圖的修改都會報錯,從而找到內存泄露的定點。

目前我出現過內存泄露問題的有兩處:

1.

session和graph沒有釋放內存。按照資料的說法,使用了with關鍵字可以在session異常退出時也釋放內存,否則要用session.close()關閉session。代碼如下:

with tf.Session() as session:  #codes#一般使用with以后就會釋放內存,否則運行如下釋放session.close()del session

另一方面,我是在session中加載graph(訓練好的模型),導致每次關閉程序再運行,graph出現重復加載的現象。錯誤代碼示例:

with tf.Seesion() as session:  # 在session內部加載保存好的graph  saver = tf.train.import_meta_graph('./CNN_cracks.meta')  saver.restore(session, "./CNN_cracks")  # codes

此處,在一次運行session時會加載一次graph,一次運行的時候沒問題,但多次運行(調試時),每次graph都會加載到內存而不被釋放,因而造成內存泄露。

正確的做法如下:

# 用with新建一個graph,這樣在運行完以及異常退出時就會釋放內存graph = tf.Gragh()with graph.as_default():  saver = tf.train.import_meta_graph('./CNN_cracks.meta')with tf.Session(graph=graph) as session:  saver.restore(session, "./CNN_cracks")

2.

一些tensorflow的運算似乎也會修改圖,原因未明。所以在在訓練里面把所有屬于tensorflow的運算都寫進去,運行session.run返回的只能是只讀。

##錯誤代碼#訓練graph = tf.Graph()with graph.as_default():  #codes  predict = tf.nn.softmax(model(data))#預測,這里訓練文件與預測文件是分離的with tf.Session(graph=graph) as session:  #codes  predict = session.run(predict, feed_dict={data: block})  prediction = tf.argmax(predict, -1) #這里會對圖進行修改
##正確代碼#訓練graph = tf.Graph()with graph.as_default():  #codes  predict = tf.argmax(tf.nn.softmax(model(data)), -1)#預測with tf.Session(graph=graph) as session:  #codes  prediction = session.run(predict, feed_dict={data: block})

以上這篇解決Tensorflow 內存泄露問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 二手房| 平遥县| 自治县| 华坪县| 太仓市| 庄河市| 兴海县| 青岛市| 乃东县| 鹰潭市| 铜梁县| 定结县| 华阴市| 太原市| 上思县| 天等县| 黔西县| 和静县| 利津县| 湘潭县| 应用必备| 车险| 兰考县| 博野县| 定南县| 白水县| 甘孜| 民县| 郧西县| 天等县| 应用必备| 舒城县| 屯留县| 垫江县| 平顶山市| 荆州市| 石屏县| 乌拉特中旗| 海宁市| 武威市| 浦东新区|