PyTorch张量维度操作(拼接、扩展、压缩、重复、变形、置换维度)

涉及到的方法有:
拼接torch.cat();torch.stack
扩展torch.Tensor.expand()
压缩torch.squeeze(); torch.Tensor.narrow()
重复torch.Tensor.repeat(); torch.Tensor.unfold()
变形torch.Tensor.view();torch.Tensor.resize_()
置换维度torch.Tensor.permute()

torch.cat(seq, dim=0, out=None) → Tensor
在指定的维度dim上对序列seq进行连接操作
torch.stack(seq, dim=0, out=None) → Tensor
增加新的维度进行堆叠
torch.Tensor.expand(*sizes) → Tensor
返回张量的一个新视图,可以将张量的单个维度扩大为更大的尺寸。
传入-1则意味着维度扩大不涉及这个维度。
扩大张量不需要分配新内存,仅仅是新建一个张量的视图。

torch.squeeze(input, dim=None, out=None) → Tensor
除去输入张量input中数值为1的维度,并返回新的张量。
当通过dim参数指定维度时,维度压缩操作只会在指定的维度上进行。
如果一个张量只有1个维度,那么它不会受到上述方法的影响。
输出的张量与原张量共享内存,如果改变其中的一个,另一个也会改变。

torch.Tensor.repeat(*sizes)
沿着指定的维度重复张量。不同于expand()方法,本函数复制的是张量中的数据。

torch.Tensor.unfold(dim, size, step) → Tensor
返回一个新的张量,其中元素复制于有原张量在dim维度上的数据,复制重复size次,复制时的步进值为step。

torch.Tensor.narrow(dimension, start, length) → Tensor
返回一个经过缩小后的张量。操作的维度由dimension指定。缩小范围是从start开始到start+length。执行本方法的张量与返回的张量共享相同的底层内存。

torch.Tensor.view(*args) → Tensor
返回一个有相同数据但形状不同的新的张量
返回的装两必须与原张量有相同的数据和相同的元素个数,但是可以有不同的尺寸。

torch.Tensor.resize_(*sizes)
将张量的尺寸调整为指定的大小。如果元素个数比当前的内存大小大,就将底层存储大小调整为与新元素数目一致的大小。
如果元素个数比当前内存小,则底层存储不会被改变。原来张量中被保存下来的元素将保持不变,但新内存将不会被初始化。

torch.Tensor.permute(*dims)
将执行本方法的张量的维度换位。

参考:
PyTorch 常用方法总结4:张量维度操作(拼接、维度扩展、压缩、转置、重复……)

你可能感兴趣的:(Pytorch)