为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我会因为 Keras 的损失而得到 nan?

为什么我会因为 Keras 的损失而得到 nan?

繁星coding 2022-01-11 17:01:31
我正在关注文章https://www.analyticsvidhya.com/blog/2018/10/predicting-stock-price-machine-learningnd-deep-learning-techniques-python/。首先,我尝试使用文章中的数据,即https://s3-ap-south-1.amazonaws.com/av-blog-media/wp-content/uploads/2019/03/NSE-TATAGLOBAL11。 CSV。该脚本产生与文章相同的结果。然后,我尝试从 Yahoo Finance 下载另一个数据集。数据集更大(2805 行而不是文章样本数据集中的 1000+ 行)。但是,使用 LSTM 方法后,我会得到 nan 的损失。为什么?如何解决问题?
查看完整描述

2 回答

?
侃侃尔雅

TA贡献1801条经验 获得超16个赞

您正在使用的数据很可能包含nan. 删除这些行或用适当的值填充这些行将解决此问题。

您可以检查nan使用np.isnan(X)


查看完整回答
反对 回复 2022-01-11
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

请按照以下步骤进行:

  1. 通过分位数归一化来归一化您的数据。严格来说,在训练数据上而不是在整个数据集上计算这种转换。

  2. 添加正则化,可以通过增加 dropout 率或向权重添加 L1 和 L2 惩罚。L1 正则化类似于特征选择。

  3. 如果这些仍然没有帮助,请减小网络的大小以减少导致训练数据较少的网络参数。这并不总是最好的主意,因为它会损害性能。

  4. 最后,增加批量大小,它可能会增加优化的稳定性。


查看完整回答
反对 回复 2022-01-11
  • 2 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信