如何使用Python解决DNN深度神经网络模型运行时出现的ValueError问题
问题原因
你遇到的报错和代码逻辑问题有两个核心点:
- 输入维度不匹配:你在定义模型输入层时设置了
input_dim=3,要求输入特征必须有3列,但实际构造的hkgf_features只包含時間區間、政治傾向2个字段,输入维度是2,和模型预期的3维不一致,直接触发了维度不匹配报错。 - 特征标签混淆(数据泄露):你把要预测的目标列
政治傾向同时放入了特征集和标签集,相当于训练时直接给模型提供了答案,训练出来的模型没有任何实际预测价值。
解决方法
根据你的实际数据情况二选一即可:
- 如果你确认数据集里共有3个有效特征可用:修改特征构造代码,把
政治傾向从特征列表中移除,补充剩下的1个特征列到hkgf_features的列表中,确保特征列总数为3,和input_dim=3匹配。 - 如果你只有2个有效特征可用:直接修改模型输入层的参数,将
input_dim=3改为input_dim=2即可,修改后代码如下:
model.add(Dense(64, input_dim=2, activation='relu'))
额外优化建议
如果你的目标列政治傾向是分类变量(比如不同的派别分类),当前用MSE损失的回归配置并不适配,建议更换为交叉熵损失函数,输出层对应添加sigmoid(二分类)或softmax(多分类)激活函数,训练效果会更优。
内容的提问来源于stack exchange,提问作者HKGF
相关产品推荐
相关产品推荐

