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

Keras Sequential模型训练loss、val_loss及预测结果均为NaN问题排查

Keras训练loss/准确率全为NaN问题修复方案

问题根本原因

模型训练、预测全输出NaN的核心诱因是训练数据集的目标列存在未被清理的空值:
代码执行顺序错误,先运行datas.dropna(inplace=True)清理全表空值,后运行datas['target'] = datas['close'].shift(-4)生成目标列,shift(-4)操作会将数据集最后4行的target值自动置为NaN,后续没有再次做空值清理,NaN值传入模型后直接导致训练流程失效。

修复方案

  • 调整代码执行顺序,先生成目标列,再做全局空值清理,示例代码如下:
# 1. 先生成移位目标列
datas['target'] = datas['close'].shift(-4)
# 2. 再统一清理全表所有空值,包含target列最后4行的NaN
datas.dropna(inplace=True)
  • 空值清理后增加校验步骤,确认数据集无空值后再传入模型:
# 校验全表是否存在空值,返回True则符合训练要求
print(datas.isna().any().any() == False)
  • 若不需要全表清理空值,也可单独删除target列为空的行,最大化保留训练数据:
datas = datas[datas['target'].notna()]

内容的提问来源于stack exchange,提问作者Björn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:48:03