【pytorch-autograd】

解释的官网:https://pytorch.org/tutorials/beginner/blitz/autograd_tutorial.html#sphx-glr-beginner-blitz-autograd-tutorial-py“”


1.

x = torch.ones(3, requires_grad=True)

y = x * 2


v = torch.tensor([1, 2, 0], dtype=torch.float)
y.backward(v, retain_graph=True)
a = x.grad
print(x.grad)
y[0].backward(retain_graph=True)
print(x.grad)

求梯度主要通过两个函数:
y.backward()
x.grad()
但是这里需要注意,y必须是一个标量,如果不是标量,就要通过一个向量V直接得到v和雅克比矩阵的乘积
x.grad是会不断叠加的,也就是说,第二次调用x.grad输出的结果是两次x.grad()结果相加得到的
x定义是需要强调, requires_grad=True

猜你喜欢

转载自blog.csdn.net/zhangjipinggom/article/details/85297281