tensorflow 内存泄漏、内存不足
来源:互联网 发布:js utf 8编码转换gbk 编辑:程序博客网 时间:2024/06/03 15:56
使用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
就是在定义好网络结构之后,使用
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
- tensorflow 内存泄漏、内存不足
- jvm探查内存不足/内存泄漏问题
- weblogic 探查内存不足/内存泄漏问题
- weblogic 探查内存不足/内存泄漏问题 (转)
- 内存泄漏。。。
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- 内存泄漏
- NYOJ-ACM-字符串替换
- JAVA Spring RMI(1)--Spring整合Rmi总结
- React Native Image使用网络图片
- Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别
- python中的I/O
- tensorflow 内存泄漏、内存不足
- 51nod1617(codeforces117D)奇偶数组
- 大家好
- mycat中全局表的实战应用简析(上)
- jsoncpp空数组
- 浅谈【WordPress技巧】自定义显示文章具体发表时间
- mysql进程查询sql
- Python入门记——注释代码
- 数据库相关理论知识整理复习