前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow 内存泄漏、内存不足

tensorflow 内存泄漏、内存不足

作者头像
DoubleV
发布2018-09-12 15:06:51
5.7K0
发布2018-09-12 15:06:51
举报
文章被收录于专栏:GAN&CV

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25737169/article/details/78125550

使用tensorflow的时候有一个问题,训练过程中,每次迭代所需要的时间越来越长,运行一段时间后报错,说内存不足,后来找到了原因,在循环中我使用 tf.convert_to_tensor()函数,一开始不理解这个函数,有时候用着很方便就拿来用了,后来才知道这个函数会一直增加graph中的节点,随着训练进行,挤爆了内存 问题的详细描述和解决可以见下面的链接: https://stackoverflow.com/documentation/tensorflow/3883/how-to-debug-a-memory-leak-in-tensorflow/13426/use-graph-finalize-to-catch-nodes-being-added-to-the-graph#t=201707221208374841351 就是在定义好网络结构之后,使用

代码语言:javascript
复制
sess.graph.finalize() 

把整个图冻住,使图变为只读的形式,这样就避免了问题的发生,但是这个函数不允许增加节点,在之后循环中tf.reshape()、tf.cast()函数等改变图节点的函数也不能用了,也造成了一些不方便,这里吐槽一下tensorflow的不方便性,所以以后使用tensorflow的时候尽量避免使用tf.train.Saver(), tf.convert_to_tensor(),这一类的函数放在循环之中,尽量在外部定义好之后使用sess.run()的方法运行 另外就是 tf.zeros_like(), tf.ones_like() 这类的代码也不要放在循环里了,这样能大大加快训练速度 参考链接: http://m.blog.csdn.net/appleml/article/details/75805797 https://github.com/tensorflow/tensorflow/issues/4151

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年09月28日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档