pytorch - Pytorch 中奇怪的 Cuda 内存不足行为

标签 pytorch pytorch-dataloader

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

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

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

这是我尝试过的:

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

  • “运行时错误: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

  • “运行时错误:CUDA 内存不足。已尝试分配 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)”

即使图像尺寸和批处理尺寸都非常小......

最佳答案

已解决-问题取决于 worker 的数量,降低了 worker 的数量,问题就解决了

关于pytorch - Pytorch 中奇怪的 Cuda 内存不足行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66642338/

相关文章:

python - 无法在 Jupyter Notebook 或 Spyder for PyTorch 中获取可用的 cuda

numpy - PyTorch - 到 NumPy 会产生未确定大小的对象?

machine-learning - 损失函数如何知道在 PyTorch 中为哪个模型计算梯度?

python - 从 CNN 层转到线性层时层尺寸不匹配

pytorch - 为什么 Pytorch 数据加载器的迭代永远不会结束?

PyTorch:在 random_split 之后对训练数据应用数据增强

pytorch - 使用经过训练的 BERT 模型、拥抱脸来预测原始文本的情感

python - padding ='same' 转换为 PyTorch padding=#

pytorch - PyTorch 数据集应该返回什么?