例子
输入:
import torch
x=torch.ones(2,2,requires_grad=True)
# "requires_grad=True"的意思是x可以利用链式法则进行梯度计算
print(x)
print(x.grad_fn)
'''
"x.grad_fn"是用来记录计算过程的,例如这里的x是直接生成的,
故输出为:
None
'''
输出
tensor([[1., 1.],
[1., 1.]], requires_grad=True)
None
接着上面进行操作
输入
y= x+2
print(y)
print(y.grad_fn)
输出
tensor([[3., 3.],
[3., 3.]], grad_fn=<AddBackward0>)
<AddBackward0 object at 0x000002A4E3B99648>
y是在x的基础上运算,故y也可以进行梯度计算
可以发现"y.grad_fn"返回的不是None
显示的是"AddBackward0"
是由于y进行的是加法运算