火炬的LSTM、多变量、多特征 [英] LSTM, multi-variate, multi-feature in pytorch
本文介绍了火炬的LSTM、多变量、多特征的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在理解pytorch中LSTM的数据格式时遇到了问题。假设我有一个具有4个功能的CSV文件,一个接一个地以时间戳的形式排列(一个经典的时间序列)
time1 feature1 feature2 feature3 feature4
time2 feature1 feature2 feature3 feature4
time3 feature1 feature2 feature3 feature4
time4 feature1 feature2 feature3 feature4, label
但是,这4个序列的整个集合只有一个标签。我们尝试分类的事情从时间1开始,但直到时间4才知道如何标记它。我的问题是,一个典型的pytorch LSTM能支持这一点吗?我读过、看过、浏览过的所有教程都涉及到查看单个要素或单词模型的时序,它们仍然是一个单一维度的数据集。
如果可以支持,是否需要以某种方式扁平化数据?
Pytorch的LSTM引用状态:
输入:Batch_First=False时的形状张量(L,N,Hin})(L,N,Hin)或Batch_First=True时的形状张量(N,L,Hin)(N,L,Hin),包含输入序列的特征。输入也可以是压缩的可变长度序列。这是否意味着它不能支持任何包含多个序列的输入?或者是否还有其他名称?
我真的迷路了,需要任何建议、指示、帮助等等。也许还能消除一些歧义。
我在这里发了几次帖子,都没有得到任何回应。如果这篇帖子放错了地方,有人能告诉我张贴的正确位置吗?
编辑:听从丹尼尔的建议,这四个功能应该这样放在一起,我理解正确了吗?
[(feature1, feature2, feature3, feature4, feature1, feature2, feature3, feature4, feature1, feature2, feature3, feature4, feature1, feature2, feature3, feature4), label] when given to the LSTM?
如果正确,则本例中的输入大小是否为(16)?
最后,我的印象是LSTM的输出将是预测的标签。我说错了吗?
LSTM
如您所示,推荐答案层的输入大小为(BATCH_SIZE,SEQUENCE_LENGTH,FEATURE_SIZE)。这意味着该功能被假定为一维矢量。
因此,要在您的情况下使用它,您需要将四个要素堆叠成一个矢量(如果它们本身大于1D,则首先将它们展平),并将该矢量用作图层的输入。
关于标签。坚决支持仅在几次迭代之后才有标签。LSTM将输出与输入序列长度相同的序列,但在训练LSTM时,您可以选择在损耗函数中使用该序列的任何部分。在您的情况下,您将只希望使用最后一个元素。
这篇关于火炬的LSTM、多变量、多特征的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文