如何在训练过程中检查CUDA内存不足的根本原因?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在训练过程中检查CUDA内存不足的根本原因?相关的知识,希望对你有一定的参考价值。

[我正在拥抱face language_modeling.py上运行roberta。经过400个步骤后,我突然遇到了CUDA内存不足的问题。不知道该如何处理。你能帮忙吗?谢谢

答案

这可能有多个原因。如果仅在几次迭代后得到它,则可能是您没有释放计算图。您是否使用loss.backward(retain_graph=True)或类似名称?

此外,当您进行推理时,请务必使用

with torch.no_grad():
    model.forward(...)

否则,计算图也会保存在此处,并且可能永远不会释放,因为您永远不会在它们上调用backward()

以上是关于如何在训练过程中检查CUDA内存不足的根本原因?的主要内容,如果未能解决你的问题,请参考以下文章

即使使用 AWS P8 实例,Yolov5 模型训练也因 CUDA 内存不足而失败

运行时错误:CUDA 在训练结束时内存不足并且不保存模型;火炬

CUDA 错误:内存不足 - Python 进程使用所有 GPU 内存

运行时错误:CUDA 内存不足。试图分配...但内存是空的

Tensorflow GPU错误CUDA_ERROR_OUT_OF_MEMORY:内存不足

如何避免 PyTorch 中的“CUDA 内存不足”