欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Pytorch 为什么每一轮batch需要设置optimizer.zero_grad

发布时间:2024/7/23 62 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Pytorch 为什么每一轮batch需要设置optimizer.zero_grad 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

根据pytorch中的backward()函数的计算,当网络参量进行反馈时,梯度是被积累的而不是被替换掉;但是在每一个batch时毫无疑问并不需要将两个batch的梯度混合起来累积,因此这里就需要每个batch设置一遍zero_grad 了。

其实这里还可以补充的一点是,如果不是每一个batch就清除掉原有的梯度,而是比如说两个batch再清除掉梯度,这是一种变相提高batch_size的方法,对于计算机硬件不行,但是batch_size可能需要设高的领域比较适合,比如目标检测模型的训练。
 

总结

以上是生活随笔为你收集整理的Pytorch 为什么每一轮batch需要设置optimizer.zero_grad的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。