解决内存急速增长的措施

最近在用Imgnet2012 validation set跑定量实验时,没跑几个epoch就出现了内存爆满的情况

解决办法:
1. 将某个变量进行detach一下
2. 将使用到该变量的地方 ,print时,选择使用.item()来取值,而不是取tensor

这个问题得到解决,没几天出现了新的问题。。。经过排查,是因为将所有样本一次性计算损失并更一次,这样tensor的暴增必然会带来内存的暴增。。。

小节:一般更新梯度时,有三种方法:计算所有样本的损失并更一次,准确性高但计算成本高;随机梯度,也就是每个样本更一次,计算块但是不准确,有时不同样本的更新梯度会互相抵消;采用批处理,一批数据进行更一次,这样计算稳定且成本低。

你可能感兴趣的:(解决内存急速增长的措施)