
1、使用PyTorch 计算梯度数值
PyTorch 的 Autograd 模块实现了深度学习的算法中的反向传播求导数,在张量(Tensor类)上的所有操作, Autograd 都能为他们自动提供微分,简化了手动计算导数的复杂过程。
在04以前的版本中, Pytorch 使用 Variabe 类来自动计算所有的梯度 Variable 类主要包含三个属性 Variable 所包含的 Tensor;grad:保存 data 对应的梯度,grad 也是个 Variable,而不是 Tensor,它和 data 的形状一样;grad_fn:指向一个 Function 对象,这个 Function 用来反向传播计算输入的梯度;
从 0.4 起, Variable 正式合并入 Tensor 类,通过 Variable 嵌套实现的自动微分功能已经整合进入了 Tensor 类中。虽然为了的兼容性还是可以使用 Variable(tensor)这种方式进行嵌套,但是这个操作其实什么都没做。
以后的代码建议直接使用 Tensor 类进行操作,因为官方文档中已经将 Variable 设置成过期模块。
想通过 Tensor 类本身就支持了使用 autograd 功能,只需要设置 reques_grad=True;
Variable 类中的的 grad 和 grad_fn 属性已经整合进入了 Tensor 类中。
2、Autograd
- 在张量创建时,通过设置 requires_grad 标识为 True 来告诉 PyTorch 需要对该张量进行自动求导, PyTorch 会记录该张量的每一步操作历史并自动计算 。

最低0.47元/天 解锁文章
9999





