深度学习的算法本质上是通过反向传播求导数,PyTorch的Autograd模块实现了此功能。
autograd.Variable是Autograd中的核心类,它简单封装了Tensor,并支持几乎所有Tensor的操作。Tensor在被封装为Variable之后,可以调用它的.backward实现反向传播,自动计算所有梯度。
Variable主要包含三个属性
- data: 保存了Variable所包含的Tensor
- grad: 保存data对应的梯度,grad也是个Variable,而不是Tensor,它和data的形状一样
- grad_fn: 指向一个Function对象,这个Function用来反向传播计算输入的梯度
from torch.autograd import Variable
# 使用Tensor新建一个Variable
x = Variable(t.ones(2, 2)<