pytorch代码中同时进行训练和验证时显示内存爆炸

最近在写pytorch代码时,在每个epoch下训练和验证数据,但是每次训练完数据后进行验证时程序就会报错:

RuntimeError: CUDA out of memory. Tried to allocate 74.00 MiB (GPU 0; 11.75 GiB total capacity; 10.15 GiB already allocated; 16.81 MiB free; 157.35 MiB cached)

经过参考:
https://www.cnblogs.com/liuzhan709/p/10053009.html
在训练验证集时没有使用torch.no_grad()函数才会出现这种错误,因为在验证时不需要计算梯度。除了使用torch.no_grad()函数外,也可以使用

# eval
torch.set_grad_enabled(False)
...	# your test code
torch.set_grad_enabled(True)

参考:
https://blog.csdn.net/weixin_46559271/article/details/105658654

我用的是上述第二种方法,成功解决问题。

多学习,多记录,多进步,加油!

猜你喜欢

转载自blog.csdn.net/qq_44846512/article/details/112366578