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

如何将输入图像馈入DNN集成模型?多输入不匹配报错求解

错误原因

你定义的集成模型为多输入结构:构造时inputs参数传入了长度为5的子模型输入列表,要求训练时必须传入长度为5的输入列表,列表中每个元素对应一个子模型的输入,形状为(样本数, 160, 160, 3)。
你使用np.dstack拼接图像的操作,将5份图像在宽度维度拼接为单个形状为(300, 160, 800, 3)的张量,不符合模型的输入要求,因此触发报错。

修复步骤

1. 替换图像堆叠逻辑

删除原有的np.dstack拼接代码,直接构造符合要求的多输入列表:

stacked_img_data = [
    np.array(img_data[0:300]),
    np.array(img_data[0:300]),
    np.array(img_data[0:300]),
    np.array(img_data[0:300]),
    np.array(img_data[0:300])
]

2. 验证输入格式(可选)

执行以下代码确认输入形状匹配:

for idx, input_tensor in enumerate(stacked_img_data):
    print(f"子模型{idx+1}输入形状:", input_tensor.shape)

输出应为5条(300, 160, 160, 3),代表输入格式正确。

3. 执行训练

原有训练代码无需修改,直接运行即可:

history = stacked_model.fit(x = stacked_img_data, y = target_val, epochs=10)

可选优化

后续如果需要扩容数据集降低内存占用,可以使用tf.data.Dataset构造多输入流水线,避免一次性加载全量数据到内存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:27:03