You need to enable JavaScript to run this app. Keras(Tensorflow)合并双分类模型得到1输入4输出时结果异常问题
优惠活动
大模型
产品
解决方案
定价
更多

Keras(Tensorflow)合并双分类模型得到1输入4输出时结果异常问题

问题出在张量拼接的维度选择错误。
你当前使用axis=0拼接两个模型的输出,是在批量维度执行拼接操作:每个子模型的输出形状为(批量大小, 2),按维度0拼接后得到的输出形状为(2*批量大小, 2)。当你传入单张图片预测时,批量大小为1,最终得到的就是你看到的形状为(2, 2)的数组,此时np.argmax的取值范围自然只能是0到1,无法达到你预期的0到3。

你需要将拼接维度调整为axis=1,在特征维度合并两个模型的输出,这样每个样本对应的两个2维输出会被拼接为4维,正好符合你1输入、4输出的需求。修改后的代码如下:

inputs = tf.keras.Input(shape=(50,50,1))
y_1 = f1_Model(inputs)
y_2 = f2(inputs)
# 沿特征维度拼接输出
outputs = tf.concat([y_1, y_2], axis=1)
new_model = keras.Model(inputs, outputs)
new_model.summary()

修改后模型的输出形状为(None, 4),单张图片预测时输出为(1, 4)的数组,此时调用np.argmax(prediction)即可得到0到3范围内的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 20:48:01