【用图说话】PyTorch中Tensor的拼接

PyTorch中Tensor的拼接

PyTorch中Tensor的拼接方法:torch.cat()torch.stack()
【小提示:代码得到下面的图】

  • torch.cat()

我们用图+代码来举例

import torch
x1 = torch.randn(1, 3)
x2 = torch.randn(1, 3)

【用图说话】PyTorch中Tensor的拼接_第1张图片

# 在 0 维(纵向)进行拼接
torch.cat((x1, x2), 0)	
# size
[2, 3]

【用图说话】PyTorch中Tensor的拼接_第2张图片

# 在 1 维(横向)进行拼接
torch.cat((x1, x2), 1)	
# size
[1, 6]

【用图说话】PyTorch中Tensor的拼接_第3张图片
注意:对于需要拼接的张量,维度数量必须相同,进行拼接的维度的尺寸可以不同,但是其它维度的尺寸必须相同。【简而言之,堆积木,对上了就可以拼】

  • torch.stack()

我们继续用图+代码来举例

import torch
x1 = torch.randn(3, 4)
x2 = torch.randn(3, 4)

【用图说话】PyTorch中Tensor的拼接_第4张图片

# 在 0 维插入一个维度,进行前后组合
torch.stack((x1, x2), 0)	
# size
[2, 34]

【用图说话】PyTorch中Tensor的拼接_第5张图片

# 在 1 维插入一个维度
torch.stack((x1, x2), 1)
# size
[3, 24]

【用图说话】PyTorch中Tensor的拼接_第6张图片

# 在 2 维插入一个维度
torch.stack((x1, x2), 2)
# size
[3, 24]

【用图说话】PyTorch中Tensor的拼接_第7张图片
补充:
拼接多个向量,例如:torch.stack((x1, x2, x3, x4), 2),再上述的方法中接入需要拼接的向量就可以了

你可能感兴趣的:(python,pytorch)