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

PyTorch如何将固定数值作为新列追加到二维张量的最后一维

实现方案

你需要先将浮点数值扩展为和原始张量行数一致的单列张量,再沿列维度拼接即可,完整代码如下:

import torch

# 构造原始2行7列张量
x = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]
x = torch.tensor(x).reshape(-1,7)
# 转换为浮点类型,避免和浮点数拼接时报类型错误
x = x.float()

# 处理待追加的浮点值
a = 0.19
# 将单值张量扩展为2行1列,所有行的数值都是0.19
b = torch.tensor([a]).expand(x.shape[0], 1)

# 沿列维度(dim=1)拼接,得到目标形状[2,8]的张量
res = torch.cat([x, b], dim=1)
print(res.shape)
print(res)

运行输出:

torch.Size([2, 8])
tensor([[ 1.0000,  2.0000,  3.0000,  4.0000,  5.0000,  6.0000,  7.0000,  0.1900],
        [ 8.0000,  9.0000, 10.0000, 11.0000, 12.0000, 13.0000, 14.0000,  0.1900]])

问题说明

你之前的操作存在两个问题:

  • torch.stack是在新维度拼接张量,要求两个输入张量形状完全一致,不符合追加列的需求,追加现有维度的内容应该使用torch.cat
  • 你构造的b张量形状为[1,1],和原始张量的2行不匹配,无法直接沿列维度拼接,需要先扩展为匹配的形状。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:00:03