colab 如何释放gpu显存?

1)

obj = None

2)

import gc
gc.collect() # Python thing
# torch.cuda.empty_cache() # PyTorch thing
with torch.no_grad():
    torch.cuda.empty_cache()

参考资料:

如果您只是将使用大量内存的对象设置为None这样:

obj = None
之后你打电话

gc.collect() # Python thing
这是您可以避免重新启动笔记本电脑的方法。

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

torch.cuda.empty_cache() # PyTorch thing
清空 PyTorch 缓存。

到目前为止,答案对于 Cuda 方面是正确的,但在 ipython 方面也存在问题。

当您在笔记本环境中遇到错误时,ipython shell 会存储异常的回溯,因此您可以使用 访问错误状态%debug。问题是这需要将导致错误的所有变量保存在内存中,并且它们不会被诸如gc.collect(). 基本上你所有的变量都会卡住并且内存泄漏。

通常,引发新异常会释放旧异常的状态。所以尝试类似的东西1/0可能会有所帮助。然而,使用 Cuda 变量时事情会变得很奇怪,有时不重启内核就无法清除 GPU 内存。

你可能感兴趣的:(cuda&深度学习环境,系统相关,开发,pytorch,深度学习,python)