@

view()/reshape() 改变形状

view()/reshape()等价,参数为需要目标tensor的形状
PyTorch——(2) tensor基本操作

unsqueeze()增加维度

在指定位置增加一个维度,参数为增加后,被增加维度所在的位置索引
PyTorch——(2) tensor基本操作
PyTorch——(2) tensor基本操作

squeeze()压缩维度

只能压缩长度为1的维度,参数为压缩前,被压缩维度的索引
PyTorch——(2) tensor基本操作

expand()广播

相当于广播机制,将tensor在“形式上”变成指定的维度。实际数据并没有改变。
PyTorch——(2) tensor基本操作-1表示该维度不扩展

repeat() 复制

  1. 将tensor 在指定维度上复制 n次,这里的参数不再是目标形状,而是次数
  2. repeat()会实际复制数据,即内存上多出 n倍相同的内容。
    PyTorch——(2) tensor基本操作

transpose() 交换指定的两个维度的位置

PyTorch——(2) tensor基本操作

permute() 将维度顺序改变成指定的顺序

参数为改变后的顺序
PyTorch——(2) tensor基本操作

合并和分割

cat() 将tensor在指定维度上合并

PyTorch——(2) tensor基本操作

stack()将tensor堆叠,会增加新的维度

PyTorch——(2) tensor基本操作

split()根据指定维度的长度拆分

c = torch.rand(4,3,28,32)
# 参数为标量,表示均匀拆分每个成员都分到长度为2
a, b = c.split(2,dim=0)
print(a.shape)
print(b.shape)

PyTorch——(2) tensor基本操作

c = torch.rand(4,3,28,32)
# 参数为列表,表示每个成员指定长度
a, b = c.split([1,3],dim=0)
print(a.shape)
print(b.shape)

PyTorch——(2) tensor基本操作

chunk()根据数量拆分

参数为需要拆分成的数量

c = torch.rand(4,3,28,32)
a = c.chunk(4,dim=0)
print(a[0].shape)
print(a[1].shape)
print(a[2].shape)
print(a[3].shape)

PyTorch——(2) tensor基本操作