设x为已存在的Tensor
- requires_grad # 创建Tensor时设置为 True ,它将开始追踪(track)在其上的所有操作(这样就可以利⽤链式法则进⾏梯度传播了),缺失情况下默认 requires_grad = False,可通过 x.requires_grad_(True) 来⽤in-place的⽅式改变 requires_grad 属性。
- y.backward() #来完成所有梯度计算,Tensor 的梯度将累积到 .grad 属性中。 注:y.backward() 时,如果 y 是标量,则不需要为 backward() 传⼊任何参数;否则,需要
传⼊⼀个与 y 同形的 Tensor。
-
x . grad #查看函数结果关于x的梯度。注: grad 在反向传播过程中是累加的 (accumulated) ,这意味着每⼀次运⾏反向传播,梯度都会累 加之前的梯度,所以⼀般在反向传播之前需把梯度清零。
-
x . grad . data . zero_ () #梯度清零
-
.detach() #将其从追踪记录中分离出来,这样就可以防⽌将来的计算被追踪,这样梯度就传不过去了。
-
with torch.no_grad():接代码块 #将不想被追踪的操作代码块包裹起来 。
- x.grad_fn #该属性即创建该 Tensor 的Function , 就是说该 Tensor 是不是通过某些运算得到的,若是,则 grad_fn 返回⼀个与这些运算相关的对象,否则是None。
- x.is_leaf #判断x是否为直接创建的叶⼦节点,叶⼦节点对应的 grad_fn 是 None 。