我使用的是ubuntu 16.04,tensorflow 1.3
权重约为17M的网络
图形尺寸400x1000,批量大小4,在图形构造期间:
无法在主机上分配34359738368个字节:CUDA_ERROR_OUT_OF_MEMORY
图形尺寸为300x750,批量大小为4,在图形构建过程中:
无法在主机上分配34359738368个字节:CUDA_ERROR_OUT_OF_MEMORY
图形尺寸为300x740,批量大小为1,在图形构建过程中:
无法在主机上分配34359738368个字节:CUDA_ERROR_OUT_OF_MEMORY
因此,所请求的内存对于所有三个实验都是相同的。我的问题是17M重量真的需要如此大量的内存吗?为什么所需的内存不会随着不同的图像大小和批量大小而改变?
答案 0 :(得分:0)
可能因为你存储了很多中间结果。运行sess.run后,您会分配一些新内存来存储新的张量结果,但在添加新的alloc内存后,主机上分配的总内存超过32GB。请检查运行时使用的主机内存(不是gpu内存)。如果是这种情况,则需要降低主机内存分配。也许将它存储到硬盘是个不错的选择。