参考 PyTorch中的model.zero_grad()和optimizer.zero_grad() - 云+社区 - 腾讯云
参考 optimizer.zero_grad() - 云+社区 - 腾讯云
model.zero_grad()
optimizer.zero_grad()
首先,这两种方式都是把模型中参数的梯度设为0
当optimizer = optim.Optimizer(net.parameters())时,二者等效,其中Optimizer可以是Adam、SGD等优化器
def zero_grad(self):
"""Sets gradients of all model parameters to zero."""
for p in self.parameters():
if p.grad is not None:
p.grad.data.zero_()