【发布时间】:2021-07-22 04:34:30
【问题描述】:
我想在我的 GPU 设备上运行一些实验,但我收到此错误:
RuntimeError: CUDA 内存不足。试图分配 3.63 GiB (GPU 0; 15.90 GiB 总容量;已分配 13.65 GiB; 1.57 GiB 免费; PyTorch 总共保留了 13.68 GiB)
我阅读了可能的解决方案here,常见的解决方案是这样的:
这是因为小批量数据不适合 GPU 内存。 只需减小批量大小。当我为 cifar10 设置批量大小 = 256 数据集我得到了同样的错误;然后我设置batch size = 128,它是 解决了。
但就我而言,这是一个研究项目,我想要特定的超参数,我无法减少诸如批量大小之类的任何东西。
有人对此有解决方案吗?
【问题讨论】:
-
我之前在自己的研究中遇到过类似的问题。 ???对我来说,替代方案是使用一些等效的稀疏张量(如果可能的话),或者招募更多的 GPU 来分布我的数据。如果您使用的是
pytorch,后者在pytorch-lightning中相当简单。如果您要免费使用框架,pytorch也同样简单,尽管您需要编写更多开销。 -
你的研究项目对 BATCH_SIZE 有那么敏感吗?模型不会在较小的批量大小下收敛吗?
-
@pavel 其实是对敏感性分析的研究。我的模型收敛。但我想比较它们,看看它们对这些超参数有多敏感
-
@John 感谢您的建议。我会试试他们作为我的第二个选择。
-
那你需要另一个显卡....或者在 CPU 上训练模型。