LSTM里seq_len的具体意义

我在处理训练lstm时发现,全连接层只是处理了hiddensize,但是最后返回的时候会有seq_len那么多的预测值y,这种情况下是不是取最后一个求loss来backward呢?
我数据一天的特征值是50,打算用五天的数据推测第六天的单输出y,这种情况下,我的seq_len是5吗?
(batchsize=1)我将数据调整为(5,1,50)输入,取最后一个预测值和我的y进行比较是不是有问题?
还是说我这样的输入其实是用一天的特征值来求第二天的y?
也就是说seq_len个输入需要对应seq_len个输出?
求解答!感谢🙏

http://t/

你说的这情况中,可能是希望使用五天的数据来预测第六天的输出。

对于输入数据,序列长度(seq_len)通常表示使用多少时间步来进行预测。因此在情况中,seq_len应设为5。输入数据形状应为(batch_size,seq_len,input_size),即(5,1,50)。

对于输出数据,如果LSTM网络的最后一层是全连接层,那么它将为每个时间步生成一个输出。因此最终会得到seq_len个预测值。在情况中,可能希望只使用最后一个时间步的预测值来计算损失并进行反向传播。

但是这取决于目标任务和模型的设计。假如目标是预测每一天的输出,那么可能希望使用所有seq_len个时间步的预测值来计算损失,并使用所有seq_len个时间步的真实值来计算损失。

所以简单的答案是,是否使用seq_len个预测值来计算损失取决于目标任务和模型的设计。如果希望使用所有seq_len个预测值来计算损失,就可以将真实值与预测值进行比较,然后使用所有seq_len个时间步的损失之和来进行反向传播。

然而,在某些情况下,可能希望使用最后一个时间步的预测值来计算损失,因为可能只关心最终的预测结果。在这种情况下,可以将最后一个时间步的预测值与真实值进行比较,然后使用最后一个时间步的损失来进行反向传播。

总的来说,如何使用seq_len个预测值来计算损失取决于目标任务和模型的设计。重要的是要确保模型的设计与目标任务相匹配,这样才能得到最佳的结果。
仅供参考,望采纳,谢谢。

是的seq_len个输入需要对应seq_len个输出

LSTM的输入维度为 (seq_len, batch, input_size) 如果batch_first为True,则输入形状为(batch, seq_len, input_size)
  seq_len是文本的长度;
  batch是批次的大小;
  input_size是每个输入的特征纬度(一般是每个字/单词的向量表示;

LSTM的输出维度为 (seq_len, batch, hidden_size * num_directions)
  seq_len是文本的长度;
  batch是批次的大小;
  hidden_size是定义的隐藏层长度
  num_directions指的则是如果是普通LSTM该值为1; Bi-LSTM该值为2

参考

提供参考实例【pytorch中lstm参数与案例理解】,链接:(https://blog.csdn.net/wangwangstone/article/details/90296461?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-90296461-blog-114638812.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-5-90296461-blog-114638812.pc_relevant_default&utm_relevant_index=9)

可以取最后一个算loss值,也可以取lstm输出最后几个值加上一个全连接层得到一个新的输出算loss

是的,在这种情况下,你的seq_len应该是5,因为你使用了5天的数据来推测第6天的输出。你输入的数据形状应该是(batchsize,seq_len,feature_size),也就是(1,5,50)。

在这种情况下,你可以取最后一个预测值和实际输出y进行比较,然后计算损失并进行反向传播。但是,你也可以对每个预测值和对应的实际输出y进行比较,然后取所有损失的平均值作为最终的损失,这样可以使模型在训练过程中考虑到整个序列的信息。

此外,你的输入不是用一天的特征值来求第二天的y,而是用五天的特征值来求第六天的y。

Pytorch LSTM函数参数解释 图解
借鉴下
https://blog.csdn.net/weixin_42142630/article/details/114638812

https://gamwatcher.blog.csdn.net/article/details/120768641?%
参数解释的明明白白