定义
-
requires_grad:
如果需要为张量计算梯度,则为True,否则为False。我们使用pytorch创建tensor时,可以指定requires_grad为True(默认为False), -
grad_fn:
叶子节点为none?grad_fn用来记录除了叶子节点外的变量是怎么来的,方便计算梯度,y = x*3,grad_fn记录了y由x计算的过程。 -
grad:
当执行完了backward()之后,通过x.grad查看x的梯度值。 -
节点:
张量的运算中大部分似乎使用节点来解释张量,用tensor.ones或tensor.zreos语句创建的为叶子节点,对叶子节点进行运算得到的新的张量又是另一个节点。
例子:
x = torch.ones(2, 2, requires_grad=True)
print(x.grad_fn) # None
结果:tensor([[1., 1.],
[1., 1.]], requires_grad=True)
y = x + 2
print(y.grad_fn) # <AddBackward object at 0x1100477b8>
结果:
tensor([[3., 3.],
[3., 3.]], grad_fn=)
上面两段代码中:
由于x是直接创建的,是叶子节点,所以它没有grad_fn,而y是通过一个加法操作创建的,所以y有grad_fn
像x这种直接创建的称为叶子节点,叶子节点对应的grad_fn是None。