Tensorflow 内存爆炸

Tensorflow 内存爆炸

  1. 问题描述
    最近在运行Visual-Reasoning-eXplanation源码时,程序经常在运行一段时间之后被kill掉,查看cpu状态时发现占用很高。一般出现这种情况的原因可能有三种:batch size 过大,图节点的累积。
    第一种情况是比较常见也是容易修改的,将batch size减小即可,这里我们主要讨论第二种情况。
    Tensorflow中构造图,实质上是将一些操作作为节点加入图中,在run之前是要构造好一个图的。如果run图中不存在的节点,Tensorflow就会将节点加入图中,随着不断的迭代,造成内存的不断增长,导致内存的不足。

  2. 解决方案
    使用tf.placeholder()
    tf.placeholder()函数作为一种占位符用于定义过程,可以理解为形参,在执行的时候再赋具体的值。
    不必指定初始值,可在运行时,通过 Session.run 的函数的 feed_dict 参数指定。
    通过此方法可以减少节点增加引起的内存爆炸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>