我正在使用LSTM进行离散时间序列预测问题,我需要了解是应该使用整个LSTM输出还是仅使用LSTM输出的最后张量。
我正在尝试为包含离散值的时间序列建模:-0、1、2、4、0、9、1、2、4、9 ..... 我正在使用连接到线性层的LSTM作为模型。序列的4个数字。反馈给模型以预测序列中的第5个数字(滑动窗口逻辑)。输入是一个热编码的,因此单个输入的维数是(4,1,11),其中11是序列的基数。
我正在使用pytorch,序列正确,唯一的问题是每个输入的LSTM输出是:- LSTM_Output,(LSTM_Hidden,LSTM_cell_state)。 LSTM_Output包含每个输入馈送的所有四个值的隐藏状态输出,LSTM_Hidden包含最后一个值(每个输入馈送的四个值当中)的隐藏状态输出。
现在的问题是:-LSTM_Output(包含所有四个数字的隐藏状态)和LSTM_Hidden(包含紧邻的前一个数字的隐藏状态)中的哪一个应该馈送到线性层。
LSTM_Output,(LSTM_Hidden,LSTM_cell_state)= nn.LSTM(input_dim,output_dim)
输出= F.relu(nn.Linear(LSTM_output.view(1,-1))) 要么 输出= F.relu(nn.Linear(LSTM_Hidden.view(1,-1)))
因此,我也需要知道线性图层的输入和输出尺寸。
P.S。 -从逻辑上讲,我只知道应该提供最后一个隐藏状态,即LSTM_Hidden,但是我看到的大多数示例都将整个隐藏状态(LSTM_Output)馈送到了下一层。
在此先感谢您的帮助!