【Pytorch】backward()简单理解

backward()是反向传播求梯度,具体实现过程如下

import torch

x=torch.tensor([1,2,3],requires_grad=True,dtype=torch.double)
y=x**2
z=y.mean()
z.backward()
print(x.grad)

结果

tensor([0.6667, 1.3333, 2.0000], dtype=torch.float64)

有几个重要的点:

1.必须要加上requires_grad=True才能求

2. 一般来说,需要标量才能求梯度。

3.具体过程如下:

z是一个标量(1*1矩阵)分别对x1,x2,x3求偏导, 再代入x1,x2,x3的数值,就是如上程序输出的结果

猜你喜欢

转载自blog.csdn.net/m0_53392188/article/details/123639262