1 进一步认识Tensor
Tensor 是深度学习中最常用的数据结构之一,它可以看作是多维数组或矩阵的扩展。Tensor 可以表示各种信息,例如图像、声音、文本等等。每个元素可以是实数、整数或复数。
Tensor 有以下属性:
- Rank(秩):Tensor 的秩表示其维度的数量。Rank 为0表示该Tensor 是一个标量;Rank 为1表示它是一个向量;Rank 为2表示它是个矩阵。依此类推,Rank为n表示它是一个n维 Tensor。
- Shape(形状):Tensor 的形状指示其每个维度的大小。例如,一个形状为(2,3,4) 的 Tensor 表示有 3个维度,第一个维度的大小为 2,第二个维度的大小为3,第三个维护的大小为4。
例如,如下Tensor
import torch
t = torch.Tensor([[1,2],[3,4]])
t.size()
它的秩是2,因为最左边有2个中括号,所以是一个二维矩阵;
它的形状是(2,2),因为第一个维度有两个元素[[元素1],[元素2]],第二个维度有两个元素[元素1,元素2]
2 查看Tensor的属性
2.1 查看维度或秩
使用方法 dim() 可以查看Tensor的维度或是秩。
2.2 查看形状
使用方法 size() 可以查看Tensor中每个维度的元素数,即Tensor的形状。
3 修改形状
改变形状时,只会修改原有Tensor各维度的元素个数,但是不会改变元素总数。
3.1 将行列元素数互换
使用 view() 方法,将原来3行2列的元素,改变为2行3列的元素。
注意:这个方法并不是将矩阵进行转置(行列元素互换)。可以参看以下操作。
3.2 将多维Tensor转换为一维
使用 view() 方法,参数固定为 -1。
3.3 添加维度
使用 unsqueeze() 方法,可以为原来的Tensor增加一个维度。