【问题标题】:Strange Cuda out of Memory behavior in PytorchPytorch中奇怪的Cuda内存不足行为
【发布时间】:2021-06-12 23:25:32
【问题描述】:

编辑:已解决 - 问题取决于工人的数量,降低工人数量,问题已解决

我正在使用 24GB Titan RTX,我正在使用它来使用 Pytorch 进行图像分割 Unet,

它总是以不同的批量大小将 Cuda 从内存中抛出,而且我的可用内存比它声明的需要的多,并且通过降低批量大小,它增加了它尝试分配的内存,这没有任何意义.

这是我尝试过的:

图像大小 = 448,批量大小 = 8

  • “RuntimeError:CUDA 错误:内存不足”

图像大小 = 448,批量大小 = 6

  • “运行时错误:CUDA 内存不足。尝试分配 3.12 GiB(GPU 0;24.00 GiB 总容量;2.06 GiB 已分配;19.66 GiB 空闲;PyTorch 总共保留 2.31 GiB)”

是说它试图分配 3.12GB,而我有 19GB 空闲,它会抛出错误??

图像大小 = 224,批量大小 = 8

  • “RuntimeError: CUDA out of memory。试图分配 28.00 MiB(GPU 0;24.00 GiB 总容量;2.78 GiB 已分配;19.15 GiB 可用;PyTorch 总共保留 2.82 GiB)”

图像大小 = 224,批量大小 = 6

  • “运行时错误:CUDA 内存不足。尝试分配 344.00 MiB(GPU 0;24.00 GiB 总容量;2.30 GiB 已分配;19.38 GiB 空闲;PyTorch 总共保留 2.59 GiB)”

减少了批量大小,但尝试分配更多???

图像大小 = 224,批量大小 = 4

  • “运行时错误:CUDA 内存不足。尝试分配 482.00 MiB(GPU 0;24.00 GiB 总容量;2.21 GiB 已分配;19.48 GiB 空闲;PyTorch 总共保留 2.50 GiB)”

图像大小 = 224,批量大小 = 2

  • “运行时错误:CUDA 内存不足。尝试分配 1.12 GiB(GPU 0;24.00 GiB 总容量;1.44 GiB 已分配;19.88 GiB 空闲;PyTorch 总共保留 2.10 GiB)”

图像大小 = 224,批量大小 = 1

  • “运行时错误:CUDA 内存不足。尝试分配 1.91 GiB(GPU 0;24.00 GiB 总容量;894.36 MiB 已分配;20.94 GiB 空闲;PyTorch 总共保留 1.03 GiB)”

即使图像大小和批量大小都非常低......

【问题讨论】:

  • 您可能需要考虑添加您的解决方案作为答案。

标签: pytorch pytorch-dataloader


【解决方案1】:

SOLVED- 问题取决于工人的数量,降低他们,问题解决了

【讨论】:

  • 如何减少工人数量?
  • 我正在使用 Pytorch,为了减少工作人员的数量,只需将一个值传递给数据加载器中的“num_workers”参数,如下所示: ``` train_loader = torch.utils.data.DataLoader( train_dataset, batch_size=16, num_workers=4, shuffle=False) ``` 如果你使用 "num_workers=-1" 你会使用所有的
猜你喜欢
  • 2021-12-16
  • 2021-12-03
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-26
  • 2021-12-10
  • 2020-12-06
相关资源
最近更新 更多