所需的Tensorflow内存不';具有批量大小和图像大小的t标度

所需的Tensorflow内存不';具有批量大小和图像大小的t标度,tensorflow,memory-leaks,Tensorflow,Memory Leaks,我使用的是ubuntu 16.04,tensorflow 1.3 约17M权重的网络 实验 图像大小400x1000,批量大小4,在图形构建期间: 无法在主机上分配34359738368字节:CUDA_错误\u内存不足 图形构建期间,图像大小300x750,批量大小4: 无法在主机上分配34359738368字节:CUDA_错误\u内存不足 图形构建期间,图像大小300x740,批量大小1: 无法在主机上分配34359738368字节:CUDA_错误\u内存不足 因此,三个实验所需的内存都

我使用的是ubuntu 16.04,tensorflow 1.3

约17M权重的网络

实验
  • 图像大小400x1000,批量大小4,在图形构建期间:

    无法在主机上分配34359738368字节:CUDA_错误\u内存不足

  • 图形构建期间,图像大小300x750,批量大小4:

    无法在主机上分配34359738368字节:CUDA_错误\u内存不足

  • 图形构建期间,图像大小300x740,批量大小1:

    无法在主机上分配34359738368字节:CUDA_错误\u内存不足


  • 因此,三个实验所需的内存都是相同的。我的问题是1700米的重量真的需要这么大的内存吗?为什么所需的内存不会随着图像大小和批处理大小的不同而改变?

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

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

    您是否尝试过一个有效的实验?你有多少可用内存?(注意:我不熟悉Tensorflow或GPU编程,但看起来你需要看看你的图形内存。)我有两个GPU卡,总内存可达22GB。我会尝试用你能做到的最小尺寸(所有变量中的最小尺寸,例如1x1图像)进行实验。另外,请检查程序中的默认值设置过高的选项。顺便说一句,您的一张存储卡可能专用于计算机显示器,其他程序可能无法使用。如果它们每个都有11Gb,那么问题就来了。[更新]我将权重降低到8M,但仍然得到以下结果:无法在主机上分配34359738368字节:CUDA_ERROR_OUT of_MEMORYDid您是否尝试了一个有效的实验?你有多少可用内存?(注意:我不熟悉Tensorflow或GPU编程,但看起来你需要看看你的图形内存。)我有两个GPU卡,总内存可达22GB。我会尝试用你能做到的最小尺寸(所有变量中的最小尺寸,例如1x1图像)进行实验。另外,请检查程序中的默认值设置过高的选项。顺便说一句,您的一张存储卡可能专用于计算机显示器,其他程序可能无法使用。如果它们每个都有11Gb,那么问题就来了。[更新]我将权重降低到8M,但仍然得到以下结果:无法在主机上分配34359738368字节:CUDA_错误\u内存不足