【pytorch学习】pytorch中的cat、stack、tranpose、permute、unsqeeze详解
首先导入pytorch,利用linspace生成两个4*3的2维tensor
>>> import torch as t
# t.linspace(start,end,num)
# start到end均匀分为num个,返回值是tensor
>>> a=t.linspace(1,23,12).reshape(4,3)
>>> a
tensor([[ 1., 3., 5.],
[ 7., 9., 11.],
[13., 15., 17.],
[19., 21., 23.]])
>>> b=t.linspace(2,24,12).reshape(4,3)
>>> b
tensor([[ 2., 4., 6.],
[ 8., 10., 12.],
[14., 16., 18.],
[20., 22., 24.]])
cat
对数据沿着某一维度拼接,cat后数据的总维数不变。
比如下对tensor a和 tensor b(分别为4×3,4×3)进行拼接。
>>> c=t.cat((a,b),0) # 0表示对行拼接,1表示对列拼接,这个值不能超过a,b的最大维数
>>> c
tensor([[ 1., 3., 5.],
[ 7., 9., 11.],
[13., 15., 17.],
[19., 21., 23.],
[ 2., 4., 6.],
[ 8., 10., 12.],
[14., 16., 18.],
[20., 22., 24.]])
>>> c.shape
torch.Size([8, 3])
>>> c=t.cat((a,b),1)
>>> c
tensor([[ 1., 3., 5., 2., 4., 6.],
[ 7., 9., 11., 8., 10., 12.],
[13., 15.