蓝灯123

导航

一个稍微复杂的梯度计算例子

多自变量的函数,求梯度

x = torch.randn(3, requires_grad=True)
# x 中存了三个变量 x1,x2,x3
y = x + 2
z = y * y * 3
z = z.mean()
# 求导
z.backward()
print(x.grad)  # dz/dx
# 比较直接计算的结果
print(2*(x+2))

各自变量的梯度 可以乘上相应的权值

p = torch.tensor([0.4,0.5,0.2],dtype=torch.float32)
z.backward(p)
print(x.grad)  # dz/dx
# 比较直接计算的结果

 

posted on 2022-01-20 23:37  蓝灯123  阅读(129)  评论(0编辑  收藏  举报