[Pytorch函数]torch.cat

cat是concatnate的意思:拼接,联系在一起。
先说cat( )的普通用法
如果我们有两个tensor是A和B,想把他们拼接在一起,需要如下操作:

C = torch.cat( (A,B),0 )  #按维数0拼接(竖着拼)
C = torch.cat( (A,B),1 )  #按维数1拼接(横着拼)

>>> import torch
>>> A=torch.ones(2,3)    #2x3的张量(矩阵)                                     
>>> A
tensor([[ 1.,  1.,  1.],
        [ 1.,  1.,  1.]])
>>> B=2*torch.ones(4,3)  #4x3的张量(矩阵)                                    
>>> B
tensor([[ 2.,  2.,  2.],
        [ 2.,  2.,  2.],
        [ 2.,  2.,  2.],
        [ 2.,  2.,  2.]])
>>> C=torch.cat((A,B),0)  #按维数0(行)拼接
>>> C
tensor([[ 1.,  1.,  1.],
         [ 1.,  1.,  1.],
         [ 2.,  2.,  2.],
         [ 2.,  2.,  2.],
         [ 2.,  2.,  2.],
         [ 2.,  2.,  2.]])
>>> C.size()
torch.Size([6, 3])
>>> D=2*torch.ones(2,4) #2x4的张量(矩阵)
>>> C=torch.cat((A,D),1)#按维数1(列)拼接
>>> C
tensor([[ 1.,  1.,  1.,  2.,  2.,  2.,  2.],
        [ 1.,  1.,  1.,  2.,  2.,  2.,  2.]])
>>> C.size()
torch.Size([2, 7])

其次,cat还可以把list中的tensor拼接起来。
比如:

>>> x = torch.Tensor([ [1],[2],[3] ])
>>> x1 = [ x*2 for i in range(1,4) ]
>>> x.shape
torch.Size([3,1])
>>> len(x1)
3
>>> x1
[tensor( [[2.],
		  [4.],
          [6.]] ),tensor( [[2.],
          [4.],
          [6.]] ),tensor( [[2.],
          [4.],
          [6.]] )]
>>> x2 = torch.cat( (x1),1 )
>>> x2
tensor([[2.,2.,2.],
		[4.,4.,4.],
        [6.,6.,6.]])
>>> type(x1)
list

上面的代码可以合成一行来写:

>>> x2 = torch.cat( [x*2 for i in range(1,4)],1 )
>>> x2
tensor([[2.,2.,2.],
		[4.,4.,4.],
        [6.,6.,6.]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值