所需的Tensorflow内存不会随批量大小和图像大小而缩放

时间:2017-08-22 20:33:33

标签: tensorflow memory-leaks

我使用的是ubuntu 16.04,tensorflow 1.3

权重约为17M的网络

实验

  1. 图形尺寸400x1000,批量大小4,在图形构造期间:

      

    无法在主机上分配34359738368个字节:CUDA_ERROR_OUT_OF_MEMORY

  2. 图形尺寸为300x750,批量大小为4,在图形构建过程中:

      

    无法在主机上分配34359738368个字节:CUDA_ERROR_OUT_OF_MEMORY

  3. 图形尺寸为300x740,批量大小为1,在图形构建过程中:

      

    无法在主机上分配34359738368个字节:CUDA_ERROR_OUT_OF_MEMORY

  4. 因此,所请求的内存对于所有三个实验都是相同的。我的问题是17M重量真的需要如此大量的内存吗?为什么所需的内存不会随着不同的图像大小和批量大小而改变?

1 个答案:

答案 0 :(得分:0)

可能因为你存储了很多中间结果。运行sess.run后,您会分配一些新内存来存储新的张量结果,但在添加新的alloc内存后,主机上分配的总内存超过32GB。请检查运行时使用的主机内存(不是gpu内存)。如果是这种情况,则需要降低主机内存分配。也许将它存储到硬盘是个不错的选择。