問題所在:
在運(yùn)行時(shí)的session里定義了tf的op導(dǎo)致的,這樣每一次迭代都會(huì)在graph里增加新的節(jié)點(diǎn),導(dǎo)致memory leak,程序越來越慢,最后強(qiáng)行退出。至于在運(yùn)行時(shí)程序有沒有增加節(jié)點(diǎn),可以在session里定義graph.finalize()鎖定graph,如果跑的時(shí)候報(bào)錯(cuò)就證明程序在動(dòng)態(tài)添加節(jié)點(diǎn)導(dǎo)致的越來越慢。
解決問題:
1、不要再session中定義新op,全部都放到graph中
2、new一個(gè)新的graph,在新graph中操作op,例如

3、多次創(chuàng)建圖,在GPU環(huán)境下,會(huì)輸出大量類似這種日志
34 2017-09-22 10:09:00.573307: I tensorflow/core/common_runtime/gpu/gpu_device.cc:977] Creating TensorFlow device (/gpu:0) -> (device: 0, name: Tesla K40c, pci bus id: 0000:04:00.0)
解決方法:在代碼開頭加上 ??os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' ? ,3表示只輸出error信息