【发布时间】:2023-04-02 18:09:01
【问题描述】:
我正在训练一个神经网络,通过传递昨天的可用性(144 个样本)来预测一整天的可用性(144 个样本,6 个特征)。我很难找到好的资源或关于如何定义神经网络来预测回归问题中的时间序列的解释。训练被定义为一个有监督的学习问题。我对神经网络的定义是,
lstm_neurons = 30
model = Sequential()
model.add(LSTM(lstm_neurons * 2, input_shape=(self.train_x.shape[1], sel f.train_x.shape[2]), return_sequences=True))
model.add(LSTM(lstm_neurons * 2))
model.add(Dense(len_day, activation='softmax'))
model.compile(loss='mean_squared_error', optimizer='adam', metrics = [rm se, 'mae', 'mape'])
我正在训练 20 个 epoch,批量大小为 200,其中使用的数据集具有以下形状,
Train X (9631, 144, 6)
Train Y (9631, 144)
Test X (137, 144, 6)
Test Y (137, 144)
Validation X (3990, 144, 6)
Validation Y (3990, 144)
所有这些都会在loss、rmse、mae 的训练期间产生 nan 值...虽然这看起来是个问题,但我可以使用生成的模型来生成预测,它们看起来不错.
【问题讨论】:
-
你的数据标准化了吗?如果不是,这可能有助于解决您的问题,请查看这篇关于如何为 LSTM -RNN stackoverflow.com/questions/43467597/… 标准化您的数据的帖子以及关于 LSTM-RNN 的数据标准化的讨论stackoverflow.com/questions/43467597/…
-
应该注意,虽然归一化是该过程的关键部分,但 OP 应该知道这仍然会返回读数 - 只有它们会非常虚假,即相比而言,损失读数会非常大处理缩放数据。因此,虽然未能规范化可能会返回 nan 值,但并非在所有情况下都是如此。
标签: python keras neural-network time-series lstm