torch.cat()函数讲解并举一个例子

torch.cat() 是 PyTorch 中的一个非常有用的函数,它用于沿着指定的维度将一系列张量(tensor)拼接起来。这个函数在处理批处理数据、合并不同来源的特征或生成更大的张量时非常有用。

函数签名

 

python复制代码

torch.cat(tensors, dim=0, *, out=None) -> Tensor
  • tensors (sequence of Tensors): 要拼接的张量序列。这些张量必须具有相同的形状,除了指定要拼接的维度 dim
  • dim (int, optional): 要拼接的维度。默认值为 0。
  • out (Tensor, optional): 输出张量。如果提供,则结果将被写入此张量。

返回值

返回一个拼接后的张量。

例子

假设我们有两个张量 A 和 B,我们想要沿着不同的维度将它们拼接起来。

沿着第一个维度(dim=0)拼接
 

python复制代码

import torch
# 创建两个张量
A = torch.randn(2, 3) # 形状为 (2, 3)
B = torch.randn(3, 3) # 形状为 (3, 3),注意第一个维度不同
# 沿着第一个维度(dim=0)拼接
C = torch.cat((A, B), dim=0)
print(C.shape) # 输出: torch.Size([5, 3])

在这个例子中,A 和 B 的第一个维度大小不同(2 和 3),但第二个维度大小相同(都是 3)。我们沿着第一个维度将它们拼接起来,结果是一个形状为 (5, 3) 的张量。

沿着第二个维度(dim=1)拼接
 

python复制代码

# 创建两个形状相同的张量
A = torch.randn(2, 3) # 形状为 (2, 3)
B = torch.randn(2, 4) # 形状为 (2, 4),注意第二个维度不同
# 沿着第二个维度(dim=1)拼接
C = torch.cat((A, B), dim=1)
print(C.shape) # 输出: torch.Size([2, 7])

在这个例子中,A 和 B 的第一个维度大小相同(都是 2),但第二个维度大小不同(3 和 4)。我们沿着第二个维度将它们拼接起来,结果是一个形状为 (2, 7) 的张量。

注意

  • 拼接的张量必须在除了指定维度以外的所有维度上具有相同的形状。
  • dim 参数决定了拼接的维度,默认是 0。
  • 如果 out 参数被指定,则结果将被写入这个张量中,并且返回的将是这个张量的引用。但是,在实际使用中,通常不需要指定 out 参数。
  • 13
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值