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

tf.concat拼接不同长度张量出现维度不匹配报错如何解决

问题原因说明

tf.concat的规则是所有参与拼接的张量,除了拼接轴对应的维度可以不同,其余维度必须完全匹配。你当前的张量a是shape为(2, 3)的二维张量,张量b是shape为(5,)的一维张量,不仅维度数量不匹配,列维度也和最终需要的5列不符,所以触发报错。

调整后代码实现

你需要先对两个张量做预处理,再执行拼接,具体代码如下:

import tensorflow as tf

a = tf.constant([[1, 2, 3], [1, 2, 3]])
b = tf.constant([1, 2, 3, 4, 5])

# 1. 给a补2列0,列数扩展到5,pad参数对应[维度0的前后填充数, 维度1的前后填充数]
a_padded = tf.pad(a, paddings=[[0, 0], [0, 2]], constant_values=0)
# 2. 将一维的b升为二维张量,shape变为(1,5)
b_2d = tf.expand_dims(b, axis=0)
# 3. 按行(axis=0)拼接两个张量
result = tf.concat([a_padded, b_2d], axis=0)

print(result)
输出结果验证

运行后得到的输出和你预期的一致:

<tf.Tensor: shape=(3, 5), dtype=int32, numpy=
array([[1, 2, 3, 0, 0],
       [1, 2, 3, 0, 0],
       [1, 2, 3, 4, 5]])>

注:你问题里标注的预期shape(4,2)属于笔误,实际输出shape为(3,5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 14:36:03