PyTorch中Variable与Tensor
Variable 与Tensor
tensor是PyTorch中的完美组件,高效的数据格式,但是构建神经网络还远远不够,我们需要能够构建计算图的tensor,这就是Variable。Variable是对tensor的封装,操作和tensor是一样的,但是每个Variable都有三个属性,Variable中的tensor本身.data,对应tensor的梯度.grad以及这个Variable是通过什么方式得到的.grad_fn,是由什么函数得到的张量,如果是自己创建的,则维度None.
# 通过下面这种方式导入 Variable import torch from torch.autograd import Variable x_tensor = torch.randn(4, 5) y_tensor = torch.randn(4, 5)
1.requires_grad
# 将 tensor 变成 Variable x = Variable(x_tensor) x
tensor([[ 0.6031, -0.6642, 1.0491, -0.5876, 0.6080], [ 0.9331, -1.8954, 1.2234, 0.1483, 1.0758], [-0.5292, 1.3870, -1.6189, 1.0741, 0.9438], [ 1.4417, 0.7225, -1.2392, -0.1838, 1.3174]])
默认Variable是不需要求梯度的,所以用这个方式申明需要对其进行求梯度
# requires_grad 申明需要对其进行求梯度 x = Variable(x_tensor, requires_grad=True) y = Variable(y_tensor, requires_grad=True)