【问题标题】:I wonder how to put the parameters in nn.LSTM in this situation我想知道在这种情况下如何将参数放在 nn.LSTM 中
【发布时间】:2021-01-19 09:31:47
【问题描述】:

我想说我不熟悉英语。

您好,我最近正在使用 nn.LSTM 构建 LSTM 层。

我想要做的是使用 48*7=336 个连续输入来预测接下来的 48 个值。
这里将使用预处理的数据框。它有 384 列 (=336+48) 和 457068 行 (=929x492)。
总之,有929个客户,每个客户有492个序列数据,长度为384(=336+48)

customerID col1 col2 ... col380
1 data_{1,1} data_{1,2} ... data_{1,380}
1 data_{2,1} data_{2,2} ... data_{2,380}
... ... ... ... ...
1 data_{492,1} data_{492,2} ... data_{492,380}
2 data_{493,1} data_{493,2} ... data_{493,380}
... ... ... ... ...
929 data_{4670687,1} data_{4670687,2} ... data_{4670687,380}
929 data_{4670688,1} data_{4670688,2} ... data_{4670688,380}

这里,nn.LSTM 的 3 个参数:(input_size, hidden_​​size, num_layers)
输入张量也有 3 个维度:(seq_len, batch, input_size)\

在这种情况下,请告诉我如何输入上述参数。我将使用 num_layers=2
谢谢。

【问题讨论】:

    标签: python pytorch lstm recurrent-neural-network forecasting


    【解决方案1】:

    嗯,在 LSTM 的 3 个参数中,input_size 将与您输入张量中的 input_size 相同,这里是 336

    hidden_size 可以是你想要的任何数字,它基本上是你想要学习的节点或特征的数量。数字越高,模型在每次训练迭代中对数据的了解就越多。这主要取决于您的任务对模型的难度,尽管您不希望它变得不必要地大。

    由于您选择了num_layers=2,您可以像这样定义 LSTM:

    # Using hidden_size=256, which could be any number you want
    nn.LSTM(input_size=336, hidden_size=256, num_layers=2)
    

    【讨论】:

    • 非常感谢 :) 我的模型正在使用您提供的参数进行学习!
    • @HSR 不客气。如果它回答了您的问题,您可以接受我的回答。
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多