You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按列拼接行数相同但形状不同的PyTorch张量?

PyTorch张量A与B的拼接方案

要拼接形状分别为torch.Size([17809, 6])的张量A和torch.Size([17809, 3, 256])的张量B,核心是先对齐二者的维度结构,再进行拼接,具体步骤如下:

  • 步骤1:扩展张量A的维度
    由于B是三维张量(样本数×节点数×节点嵌入维度),而A是二维张量(样本数×特征数),需要先把A扩展为三维,让每个样本的6维特征对应B中的3个节点。可以通过unsqueeze增加节点维度,再用repeat复制到3个节点上:

    # 将A从(17809, 6)转为(17809, 1, 6),再扩展为(17809, 3, 6)
    A_expanded = A.unsqueeze(1).repeat(1, 3, 1)
    

    这里利用unsqueeze(1)在第1个位置插入新维度,再通过repeat在节点维度(第1维)重复3次,保证每个样本的特征能对应B中的所有节点。

  • 步骤2:拼接两个张量
    维度对齐后,使用torch.cat在**节点嵌入维度(第2维)**进行拼接,这样每个节点的嵌入会附加A的特征:

    # 在最后一个维度拼接,得到形状为(17809, 3, 262)的张量
    combined_tensor = torch.cat([A_expanded, B], dim=2)
    

最终得到的combined_tensor每个节点的嵌入维度为256+6=262,完美结合了A的数值特征和B的节点嵌入。

内容的提问来源于stack exchange,提问作者sAguinaga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:01:06