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

使用MLP预测水体污染时y_true与y_pred输出维度不一致问题排查

错误产生原因
  • 输出层定义语法错误:你编写的model.add(Dense(2), )存在括号位置错误,model.add()方法的右括号位置偏移,导致输出维度为2的全连接层没有被正确添加到模型中,模型实际输出维度和标签的2维结构不匹配。
  • 多输出评价参数未配置:你调用的r2_score默认适配单输出任务,未指定multioutput参数时传入2维标签,也会触发维度不匹配的报错。
解决方案
  1. 修正模型层定义代码,调整括号位置,同时给隐藏层统一添加激活函数,显式指定输入维度避免形状推断错误:
model = Sequential()
# 显式指定输入特征维度为7
model.add(Dense(10, activation='relu', input_shape=(7,)))
model.add(Dense(10, activation='relu'))
model.add(Dense(8, activation='relu'))
# 修正输出层写法,回归任务输出层不需要额外激活函数
model.add(Dense(2))

你可以在编译完成后添加model.summary()代码,查看各层输出形状,确认最后一层输出维度为(None, 2)即可匹配你的标签结构。

  1. 调整R2得分的调用参数,适配多输出场景:
# 保留两个污染指标各自的R2得分
r2_y_predict = r2_score(y_test, y_predict, multioutput='raw_values')
# 如果需要返回整体平均R2,可改为 multioutput='uniform_average'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 21:09:03