Python Keras LSTM问题,如何正确设置时间序列的神经网络?

Python Keras LSTM问题,如何正确设置时间序列的神经网络?,python,keras,time-series,lstm,recurrent-neural-network,Python,Keras,Time Series,Lstm,Recurrent Neural Network,我试图弄清楚lstm是如何使用Keras预测时间序列的。 这是我的例子。 我使用一个加速计,我有一个128.000的时间序列。我想采取: n_步数_英寸=10.000 n_步出=5.000进行预测 我将大系列分成114个样本、10000个时间序列和1个特征 X=[114,10.000,1] y=[1145.000] 我试图了解有多少隐藏层可以使用,有多少神经元。 作为一种回归,我想用 activation=ReLU, loss = mse optimizer=adam 问题是,很多时候我都输

我试图弄清楚lstm是如何使用Keras预测时间序列的。 这是我的例子。 我使用一个加速计,我有一个128.000的时间序列。我想采取: n_步数_英寸=10.000 n_步出=5.000进行预测

我将大系列分成114个样本、10000个时间序列和1个特征 X=[114,10.000,1] y=[1145.000]

我试图了解有多少隐藏层可以使用,有多少神经元。 作为一种回归,我想用

activation=ReLU, 
loss = mse
optimizer=adam
问题是,很多时候我都输了,我不明白为什么

这是我的代码示例

model1 = Sequential()
model1.add(LSTM(200, activation='relu', input_shape=(n_steps_in, n_features)))
model1.add(Dense(n_steps_out))
model1.compile(optimizer='adam', loss='mse')

我希望有人能得到一些提示,谢谢

首先,尝试通过向输出层添加激活功能来修复它:

model.add(Dense(n_steps_out, activation='linear'))
但是

训练时获得nan通常意味着
爆发梯度

在深度网络或递归神经网络中,误差梯度可以 在更新过程中累积并导致非常大的渐变。这些 从而导致网络权重的大量更新,反过来, 不稳定的网络。在极端情况下,权重值可能会变为 太大以至于溢出并导致NaN值


检查机器学习掌握中的post。它会让您很好地了解问题所在,并提供一些潜在的解决方案。

首先,尝试通过向输出层添加激活功能来解决问题:

model.add(Dense(n_steps_out, activation='linear'))
但是

训练时获得nan通常意味着
爆发梯度

在深度网络或递归神经网络中,误差梯度可以 在更新过程中累积并导致非常大的渐变。这些 从而导致网络权重的大量更新,反过来, 不稳定的网络。在极端情况下,权重值可能会变为 太大以至于溢出并导致NaN值


检查机器学习掌握中的post。它将为您提供一个非常好的问题概述和一些潜在的解决方案。

尽管LSTM广泛用于序列数据表示,但在非深度学习分类器中,XGBoost取得了最好的结果

尽管LSTM广泛用于序列数据表示,在非深度学习分类器中,XGBoost取得了最佳效果

有多少个历元,批量大小是多少?我尝试了100个历元,批量大小32(keras拟合函数的默认值)有多少个历元,批量大小是多少?我尝试了100个历元,批量大小32(keras拟合函数的默认值)