1.Tensor
Tensor是pytorch中最基本的构件,可以像numpy一样进行矩阵计算,最主要的是Tensor支持GPU加速运算。而且Tensor的运算与numpy的运算基本相似,但有部分高级的矩阵计算Tensor并不支持,比如计算特征值特征向量等。因此numpy还是有存在的必要的。
小练习
创建一个float32,大小3*2,随机初始化的tensor,并将其转换为numpy类型。
#方式1
x = torch.randn(3,2).type(torch.FloatTensor)
#方式2
x = torch.randn(3,2).float()
x_array = x.numpy()
小练习
创建一个float32,4*4的全1矩阵,将矩阵中的2*2矩阵修改为2.
x = torch.ones(4,4).float()
x[1:3,1:3] = 2
print(x)
1 1 1 1
1 2 2 1
1 2 2 1
1 1 1 1
[torch.FloatTensor of size 4*4]
2.Variable
tensor是Pytorch中非常高效数据格式,但用tensor构建神经网络还远远不够,为了构建计算图,所以Variable是不可或缺的数据形式。Variable是对tensor的封装。
Variable有三个属性:
- .data:tensor本身
- .grad:对应tensor的梯度
- .grad_fn:该Variable是通过什么方式获得的
网友评论