【问题标题】:RuntimeError: CUDA out of memory. Tried to allocate运行时错误:CUDA 内存不足。试图分配
【发布时间】:2020-06-17 04:35:56
【问题描述】:

我正在尝试使用 jupyter notebook 运行 pytorch 代码,但出现此错误

RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 2.00 GiB total capacity; 1.23 GiB already allocated; 18.83 MiB free; 1.25 GiB reserved in total by PyTorch)

我已经找到答案了。最重要的是,只是减少批量大小。 我已经尝试将批量大小从 20 减少到 10 到 2 和 1。现在仍然无法运行代码

我的 GPU 是 Quadro p620

【问题讨论】:

  • 您使用的是什么型号,输入尺寸是多少?对于任何复杂的模型,2GB 的 GPU 内存都不够用,尤其是对于需要更大输入大小的任务。
  • @MichaelJungo 我正在使用这个模型github.com/alterzero/RBPN-PyTorch/blob/master/main.py(视频超分辨率)我的输入尺寸是“torch.Size([2, 3, 64, 64])"
  • 即使输入相当小,超分辨率最终会使用更多内存,因为它会增加大小。我认为 2GB 不足以训练该模型。如果您只想使用预训练模型,则应确保禁用渐变,方法是设置torch.set_grad_enabled(False) 或使用torch.no_grad context manager。否则,很遗憾,您将不得不在 CPU 上运行它。
  • 尝试使用 1 的批量大小。如果仍然不适合,则可能无法使用 64、64 输入大小。也许尝试使用 Google Colab(如果您只是在测试),因为它提供 8 或 11 GB GPU。
  • @akshayk07 我刚刚将我的 GPU 更改为 RTX2080 (8GB) 我仍然收到此错误 CUDA 内存不足。尝试分配 16.00 MiB(GPU 0;8.00 GiB 总容量;6.02 GiB 已分配;1.25 MiB 空闲;PyTorch 总共保留 6.03 GiB)

标签: python error-handling pytorch runtime


【解决方案1】:

您可以通过以下方式释放现有内存

nvidia-smi

记下进程并使用终止

sudo kill -9 <pid>

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2021-08-08
    • 1970-01-01
    • 2011-01-11
    相关资源
    最近更新 更多