最近在写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
我用的是上述第二种方法,成功解决问题。
多学习,多记录,多进步,加油!