我正在处理一个无状态(return_state = False)的seq2seq预测问题。
假设我有10个维度为( 10 , 50 ,2)的独立时间序列,其中10是样本数,50是时间步数,2是特征数。如果我将这个时间序列划分为training with size (10,35,2)和test (10,15,2),其中我使用test作为我的预测的验证集(以了解训练的网络预测有多好),由于lstm在这种情况下是无状态的,因此在训练期间的批次之间会刷新(重置)状态(假设batch size = 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。
谢谢。
发布于 2021-01-09 03:31:39
我认为这应该回答了你的问题,Post,也澄清了Seq2Seq自动编码器是如何工作的。
https://stackoverflow.com/questions/65629905
复制相似问题