Pytorch Note4 Variable(变量)
全部笔记的汇总贴:Pytorch Note 快乐星球
Variable(变量)
tensor 是 PyTorch 中的完美组件,但是构建神经网络还远远不够,我们需要能够构建计算图的 tensor,这就是 Variable。Variable 是对 tensor 的封装,操作和 tensor 是一样的,但是每个 Variabel都有三个属性,Variable 中的 tensor本身.data
,对应 tensor 的梯度.grad
以及这个 Variable 是通过什么方式得到的.grad_fn
Variable和Tensor本质上没有区别,不过Variable会被放入一个计算图中,然后进行前向传播,反向传播,自动求导。首先Variable是在torch.autograd.Variable中,要将一个tensor变成Variable也非常简单,比如想让一个tensor a变成Variable,只需要 Variable(a)就可以了。
Variable包含三个属性:
- data:存储了Tensor,是本体数据-
- grad:保存了data的梯度,是个Variable而非Tensor,与data形状一致
- grad_fn:指向Function对象,用于反向传播的梯度计算之用