首先,我们要清楚使用
backward()
的目的,是为了求出某个张量对于某些标量节点的梯度。
举个例子:
x=[x1,x2,x3],z=x12+x22+x32+6
那么 z.backward()
表示的就是张量x
对于标量z
的梯度,即
[ ∂ z ∂ x 1 , ∂ z ∂ x 2 , ∂ z ∂ x 3 ]
代码则是:
import torch
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
y = x ** 2 + 2
z = torch.sum(y)
z.backward()
print(x.grad)
这个还是比较好理解的。
但是当如果我们想对一个向量使用backward()
的时候,又该如何使用呢
首先,我们要清楚,backward()
的作用一直都是求出某个张量对于某些标量节点的梯度。若我们使用的对象是向量,我们可以用一些“方法”,来让我们的向量变为标量
举个例子:
设
标签:tensor,gradient,torch,参数,x2,amp,backward,grad From: https://www.cnblogs.com/gongzb/p/18636417