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

时间:2020-02-12 08:32:48

标签: gpu pytorch huggingface-transformers

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

答案 1 :(得分:0)

我的问题是,我没有与样本大小进行比较来检查我的GPU内存的大小。我有很多非常小的样本,经过多次迭代后又得到了一个大样本。我的错。 谢谢,如果发生这种情况,请记得检查这些事情。