Pytorch种torch.cat与torch.stack的区别

torch.cattorch.stack 是 PyTorch 中用于拼接张量的两个不同的函数,它们的主要区别在于拼接的方式和创建的维度。

在这里插入图片描述

  1. torch.cat:

    • 拼接方式: torch.cat 是按照给定的维度(dim 参数)将多个张量沿着该维度拼接。在拼接的维度上,张量的尺寸必须一致,除了拼接的维度之外。

    • 创建的维度: 不会在拼接的维度上创建新的维度。

    • 例子:

      # 在第一维度上拼接两个张量
      result = torch.cat((tensor1, tensor2), dim=0)
      
  2. torch.stack:

    • 拼接方式: torch.stack 是在新创建的维度上沿着给定的维度(dim 参数)拼接多个张量。这意味着它会在拼接的维度上创建一个新的维度,并且所有输入张量的形状必须一致。

    • 创建的维度: 会在拼接的维度上创建新的维度。

    • 例子:

      # 在新的第一维度上拼接两个张量
      result = torch.stack((tensor1, tensor2), dim=0)
      

总体而言,torch.cat 更灵活,因为它不会引入新的维度,而 torch.stack 在新维度上拼接,可能会引入一些不必要的新维度。选择使用哪个函数取决于你的需求和代码上下文。如果你只是想沿着现有的维度拼接张量,可以使用 torch.cat。如果你想在新的维度上拼接,并且要求输入张量的形状一致,可以使用 torch.stack

  • 8
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值