【发布时间】:2020-09-05 23:13:35
【问题描述】:
Here 他们提到在将参数梯度训练为零时需要包含optim.zero_grad()。我的问题是:我也可以这样做net.zero_grad() 会产生同样的效果吗?还是有必要做optim.zero_grad()。此外,如果我两者都做会发生什么?如果我什么都不做,那么梯度会累积,但这到底是什么意思?他们被添加了吗?换句话说,做optim.zero_grad()和net.zero_grad()有什么区别。我问是因为here, line 115 他们使用net.zero_grad(),这是我第一次看到,这是强化学习算法的一种实现,因为有多个网络和梯度,所以必须特别小心梯度,所以我想他们有理由这样做net.zero_grad(),而不是optim.zero_grad()。
【问题讨论】:
标签: pytorch reinforcement-learning