pytorch从gpu中删除模型

jgwigjjp  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(174)

我想用Pytorch在我的项目中做一个交叉验证,但我没有找到Pytorch提供的任何方法来删除当前模型并清空GPU内存,请问我该如何做?

n7taea2i

n7taea2i1#

在PyTorch中释放内存就像使用普通的Python垃圾收集器一样。这意味着一旦所有对 Python-Object 的引用都消失了,它就会被删除。
可以使用del运算符删除引用:

del model

字符串
你必须确保没有对相应对象的引用,否则内存不会被释放。
因此,一旦删除了model的所有引用,就应该删除它并释放内存。
如果你想了解更多关于内存管理的知识,你可以在这里看看:https://pytorch.org/docs/stable/notes/cuda.html#cuda-memory-management

4smxwvx5

4smxwvx52#

我更喜欢按照下面的步骤,而不是只做del model_object

model_object = My_Network().cuda()

del model_object  #deleting the model 

# model will still be on cache until its place is taken by other objects so also execute the below lines
import gc         # garbage collect library
gc.collect()
torch.cuda.empty_cache()

字符串

相关问题