发布网友 发布时间:2024-10-04 19:21
共2个回答
热心网友 时间:2024-10-04 20:40
optimizer.zero_grad()意思是把梯度置零,也就是把loss关于weight的导数变成0.
pytorch对于每个batch大都执行了这样的操作:
optimizer.zero_grad() ## 梯度清零preds = model(inputs) ## inference
loss = criterion(preds, targets) ## 求解loss
loss.backward() ## 反向传播求解梯度
optimizer.step() ## 更新权重参数
1,由于pytorch的动态计算图,当我们使用loss.backward()和opimizer.step()进行梯度下降更新参数的时候,梯度并不会自动清零。并且这两个操作是操作。
2,backward():反向传播求解梯度。
3,step():更新权重参数。
热心网友 时间:2024-10-04 20:42
optimizer.zero_grad()意思是把梯度置零,也就是把loss关于weight的导数变成0.
pytorch对于每个batch大都执行了这样的操作:
optimizer.zero_grad() ## 梯度清零preds = model(inputs) ## inference
loss = criterion(preds, targets) ## 求解loss
loss.backward() ## 反向传播求解梯度
optimizer.step() ## 更新权重参数
1,由于pytorch的动态计算图,当我们使用loss.backward()和opimizer.step()进行梯度下降更新参数的时候,梯度并不会自动清零。并且这两个操作是操作。
2,backward():反向传播求解梯度。
3,step():更新权重参数。