【发布时间】:2019-08-27 20:28:36
【问题描述】:
我有一些 Pytorch 代码演示了 Pytorch 中的梯度计算,但我完全混淆了计算的内容和使用方式。这篇帖子here 演示了它的用法,但就反向传播算法而言,它对我来说没有意义。看下面例子中 in1 和 in2 的梯度,我意识到 in1 和 in2 的梯度是损失函数的导数,但我的理解是更新也需要考虑实际损失值?损失值在哪里使用?我在这里遗漏了什么吗?
in1 = torch.randn(2,2,requires_grad=True)
in2 = torch.randn(2,2,requires_grad=True)
target = torch.randn(2,2)
l1 = torch.nn.L1Loss()
l2 = torch.nn.MSELoss()
out1 = l1(in1,target)
out2 = l2(in2,target)
out1.backward()
out2.backward()
in1.grad
in2.grad
【问题讨论】:
标签: deep-learning pytorch