如何在不重启kern的情况下清除PyTorch模型训练后的GPU内存

2024-06-22 08:11:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用一台Jupyter实验室笔记本电脑训练Pythorch深度学习模型,使用特斯拉K80 GPU上的CUDA进行训练。在进行训练迭代时,将使用12 GB的GPU内存。我通过保存模型检查点来完成培训,但希望继续使用笔记本进行进一步分析(分析中间结果等)。在

但是,在完成培训后,这些12GB继续被占用(从nvtop可以看出)。我想把这个内存释放出来,这样我就可以把它用在其他笔记本上了。在

到目前为止,我的解决方案是重新启动这个笔记本的内核,但这并不能解决我的问题,因为我不能继续使用同一个笔记本以及到目前为止计算出的各自的输出。在


Tags: 内存模型gpu笔记本jupyter解决方案实验室内核
2条回答

如果您只是将使用大量内存的对象设置为None,如下所示:

obj = None

然后你打电话来

^{pr2}$

这样可以避免重新启动笔记本。在


如果您仍然想从Nvidea smi或nvtop中清楚地看到它,您可以运行:

torch.cuda.empty_cache() # PyTorch thing

清空Pythorch缓存。在

我从来没有和Pythorch合作过,但谷歌有几个结果基本上都是一样的。。torch.cuda.empty_cache()

{a1}

https://discuss.pytorch.org/t/how-can-we-release-gpu-memory-cache/14530

How to clear Cuda memory in PyTorch

相关问题 更多 >