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

2024-10-04 03:25:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我在看这篇文章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。脚本生成的结果与文章相同。在

然后,我试图从雅虎财经下载另一个数据集。数据集更大(文章示例数据集中有2805行而不是1000多行)。但是,在使用LSTM方法后,我将得到的损失作为nan。为什么?如何解决问题?在


Tags: 数据httpscomwwwstock文章blogmachine
2条回答

按以下步骤操作:

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

  2. 通过增加辍学率或在权重中添加L1和L2惩罚来添加正则化。L1正则化类似于特征选择。

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

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

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

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

相关问题 更多 >