SDZY深度学习PYTORCH框架班

103 阅读1分钟

PyTorchtorch.autograd模块

深度学习的算法本质上是通过反向传播求导数, PyTorch的autograd模块实现了此功能, 在Tensor上的所有操作, autograd都会为它们自动提供微分, 避免手动计算导数的复杂过程。

autograd.Variable是autograd的核心类, 它简单封装了Tensor(最新版PyTorch已经将Variable和Tensor的API合并, 以后直接使用Tensor即可, 不要使用Variable了)

backward: 一个Scalar变量调用backward方法可以实现反向传播, 计算出各个变量的梯度

data: 数据

grad: 梯度

grad_fn: 计算梯度的函数

注意:

方向传播backward中grad的值是累加的, 第二次反向传播的梯度就加上第一次反向传播的梯度, 这不是我们期望的, 所以进行了一次反向传播之后应该清空梯度, 使用grad.data.zero_()

pan.baidu.com/s/11YJIw6Mt…