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

如何解决Keras多输入模型调用model.predict时的ValueError报错

问题解决步骤

核心错误分析

  1. 空输入问题:np.append不会修改原数组,必须将返回值重新赋值给变量。你原来的循环中没有赋值,导致input1和input2始终是空数组,模型接收到空输入后报错。
  2. 多输入传参错误:Keras多输入模型的predict方法,需要将多个输入打包成**列表(或字典)**传入,而不是分开作为两个参数传递。

修正后的代码

直接通过切片获取输入并补充batch维度(即使是单样本,模型也需要接收批量维度的输入):

import numpy as np

# 单样本预测:从trainX中取第0个样本,拆分并添加batch维度
input1 = trainX[0, :21].reshape(1, 21)  # 形状变为(1, 21),符合模型输入要求
input2 = trainX[0, 21:].reshape(1, 7)   # 形状变为(1, 7)

# 多输入打包成列表传入predict
q = model.predict([input1, input2])

批量预测扩展

如果需要对整个trainX做预测,直接切片即可(无需循环):

input1 = trainX[:, :21]  # 形状为(n_samples, 21)
input2 = trainX[:, 21:]   # 形状为(n_samples, 7)

q = model.predict([input1, input2])

额外说明

  • 避免用循环逐个元素append,numpy切片操作更高效且不易出错。
  • 如果你的模型输入有命名(比如定义时指定了name参数),也可以用字典传参,比如model.predict({"input_name1": input1, "input_name2": input2})。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:31:04