tensor.backward是否会计算图中的所有梯度?

时间:2018-12-20 06:58:10

标签: pytorch

我在github上阅读了这些代码:

# loss1, loss2 belong to the same net
net.zero_grad()
loss1 = ...
loss2 = ...
loss1.backward()
loss2.backward()
optim.step()

这在pytorch官方网站上并未提及BP方法,而官方文档中针对Computes the gradient of current tensor w.r.t. graph leaves.提及了tensor.backward

那么,其他梯度期望不计算两个损耗张量吗?而且没有张量被更新吗?

1 个答案:

答案 0 :(得分:0)

loss.backwards()计算图形中所有包含损失函数的变量的梯度。参数根据optim.step()中的累积梯度进行更新。在您的代码中,您向后传播了两次(每次损失一个),渐变被累积,并且只有在累积两个渐变之后,优化器才会更新参数。

相关问题