为什么我因Keras的损失而感到难为情?

时间:2019-04-16 09:29:58

标签: python keras nan loss

我正在关注文章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方法后,我会得到损失。为什么?如何解决问题?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

按照以下步骤操作:

  1. 通过分位数归一化对数据进行归一化。为严格起见,请对训练数据而不是对整个数据集进行此变换。

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

  3. 如果这些仍然不能解决问题,请减小网络规模,以减少导致训练时使用较少数据的网络参数。这并不总是最好的主意,因为它会损害性能。

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