1.why we clear gradient in optimizer && step's meaning
import torch.optim as optim # 创建optimizer,需要传入参数和learning rate optimizer = optim.SGD(net.parameters(), lr=0.01) # 清除梯度 optimizer.zero_grad() output = net(input) loss = criterion(output, target) loss.backward() optimizer.step() # optimizer会自动帮我们更新参数

注意:即使使用optimizer,我们也需要清零梯度。但是我们不需要一个个的清除,而是用optimizer.zero_grad()一次清除所有。

posted on 2020-03-24 10:08  黑暗尽头的超音速炬火  阅读(145)  评论(0编辑  收藏  举报