使用 LSTM 进行预测并使用最终隐藏状态

Forecasting with LSTM and use of final hidden states

我正在研究 seq2seq,无状态(return_state = False),预测问题。

假设我有 10 个维度为 (10,50,2) 的独立时间序列,其中 10 是样本数,50 是时间步长,2 是特征数。 如果我将这个时间序列划分为大小为 (10,35,2) 的训练和测试 (10,15,2),其中我使用测试作为我的预测的验证集(以了解经过训练的网络预测有多好),因为lstm 在这种情况下是无状态的,在训练期间状态在批次之间被刷新(重置)(假设批次大小 = 1--> 一次训练一个样本)。

我的主要问题是,在预测大小为 (10,15,2) 的测试集时,我是否应该使用我训练的网络的 final_hidden_states 并将其设置为 initial_hidden_states 进行测试放?我的问题的原因是因为从技术上讲,测试集 (10,15,2) 是 (10,35,2) 的延续,但是,我不是在测试集上训练。

更清楚地说, 第一个问题是:在这种情况下,我真的需要 final_hidden_states 进行预测吗? 第二个问题是:如果我需要 final_hidden_states,我如何为所有 10 个样本提取它们,因为在每批之间的训练过程中状态会在内部刷新?

感谢任何帮助。非常感谢示例代码(输入和输出可以是任意的或随机选择的)。

我目前在 python 中使用 keras。

谢谢。

我认为这应该可以回答您的问题 Post 并阐明 Seq2Seq 自动编码器的工作原理。