例子

输入:

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进行的是加法运算

参考文献

《动手学深度学习》 — 动手学深度学习 2.0.0-beta0 documentation

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐