如何在训练过程中检查 CUDA 内存不足问题的根本原因?
How to check the root cause of CUDA out of memory issue in the middle of training?
我是 运行 抱脸的罗伯塔 language_modeling.py
。执行 400 步后,我突然遇到 CUDA 内存不足问题。不知道怎么处理。你能帮忙吗?谢谢
这可能有多种原因。如果你只是在几次迭代后才得到它,那可能是你没有释放计算图。您使用 loss.backward(retain_graph=True)
或类似的东西吗?
还有,当你运行推理的时候,一定要使用
with torch.no_grad():
model.forward(...)
否则,计算图也会保存在那里,并且可能永远不会释放,因为您从未对它们调用 backward()
。
我的问题是我没有检查我的 GPU 内存大小与样本大小的比较。我有很多非常小的样本,经过多次迭代后得到了一个大样本。我的错。
谢谢你,如果你碰巧记得检查这些东西。
我是 运行 抱脸的罗伯塔 language_modeling.py
。执行 400 步后,我突然遇到 CUDA 内存不足问题。不知道怎么处理。你能帮忙吗?谢谢
这可能有多种原因。如果你只是在几次迭代后才得到它,那可能是你没有释放计算图。您使用 loss.backward(retain_graph=True)
或类似的东西吗?
还有,当你运行推理的时候,一定要使用
with torch.no_grad():
model.forward(...)
否则,计算图也会保存在那里,并且可能永远不会释放,因为您从未对它们调用 backward()
。
我的问题是我没有检查我的 GPU 内存大小与样本大小的比较。我有很多非常小的样本,经过多次迭代后得到了一个大样本。我的错。 谢谢你,如果你碰巧记得检查这些东西。