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

Keras多输入模型疑问:输入拼接合理性及predict调用报错问题

问题解答

1. 输入拼接方式的正确性

你的输入拼接方式是正确的,Concatenate(axis=1)会把两个形状为(None,1)的输入张量拼接成(None,2)的张量,网络会将这两个位置的特征视为不同的输入维度,完全可以学习到它们和输出之间的关联。

如果想要更明确地区分两个输入,也可以给每个输入单独加一层Dense再合并,但当前的拼接方式已经能满足需求,不需要额外修改。

另外注意你代码里开头定义的Sequential模型model = tf.keras.Sequential([l0])被后面的多输入模型覆盖了,属于冗余代码,可以直接删除。

2. model.predict()调用错误的解决

报错的核心原因是输入格式不符合多输入模型的要求:

  • 你的模型是双输入结构,需要传入一个包含两个输入数据的列表,且每个输入的形状要和训练时一致(训练时输入是形状为(N,1)的数组,预测时每个输入也要是(1,1)的二维数组,不能直接传单个整数)。
  • 修正后的调用代码如下:
# 把输入转换成符合要求的二维数组格式
input_data1 = np.array([[11]])
input_data2 = np.array([[2]])
print(model.predict([input_data1, input_data2]))

或者更简洁的写法:

print(model.predict([np.array([[11]]), np.array([[2]])]))

另外,训练时你的样本量只有5个,batch_size=16会导致每个epoch只处理一次批量(因为样本数小于batch size),可以把batch_size调小到5或者直接去掉,让模型每次处理所有样本。

内容的提问来源于stack exchange,提问作者tree.3

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:52:12