pytorch跑模型验证过程中内存不足。

pytorch跑模型过程中内存不足。

由于网络中中有一个参数是利用torch.autograd.grad梯度求解的。所以即使在model.eval的模式下也需要把梯度打开。所以就将所有的with_torch.no_grad给去掉了。

在处理的时候一张图需要计算4W条光线,每个小batch输入3000条跑一次模型,但是跑两三个batch内存就提示不足了,一张图都算不完。尝试empty_cache还是同样的问题。初步判断是每次迭代都会保存梯度所以内存不足。有人知道怎么把这些梯度给删掉么?

with_torch.no_grad应该就可以吧。除非是你漏了,有时候有的人把嵌入层的忘了关了。

内存不足的话,把输入的batch改小点或者输入的数据长度减小,多卡训练等等

加内存或者是不断的保存加载训练

题主的意思是batch_size=3000吗,如果是的话,可能batch_size有点大了吧,而且也应该是2的次方数的batch_size才会比较好发挥GPU的并行计算的优势吧...我们做NLP实验2.5w数据一般batch_size=256、128、64等等