浅谈tensorflow之内存暴涨问题
在用tensorflow实现一些模型的时候,有时候我们在运行程序的时候,会发现程序占用的内存在不断增长。最后内存溢出,程序被kill掉了。这个问题,其实有两个可能性。一个是比较常见,同时也是很难发现的。这个问题的解决,需要我们知道tensorflow在构图的时候,是没有所谓的临时变量的,只要有operator。那么tensorflow就会在构建的图中增加这个operator所代表的节点。导致内存占用越来越多。那么什么情况下就会像上面说的那样呢?这样就不会出现问题了。其实在tensorflow里面有个函数叫做:sess.graph.finalize()只要每一次构图完成后,调用这个函数。tensorflow现在有一个API接口,tf.data.Dataset 。cache函数的作用是将加载进来的数据存放到filename指定的地方。
下载地址
用户评论