【问题标题】:Difference in using LSTM for fixed sized input and variable size input将 LSTM 用于固定大小的输入和可变大小的输入的区别
【发布时间】:2021-07-31 08:32:28
【问题描述】:

我想知道如何训练(自然)LSTM 模型,在该模型中,我只需使用所有数据点,而不是仅使用具有固定时间长度的历史数据点的样本,逐个循环地输入单个时间步长。

而且,可能有什么区别?为什么使用固定长度是标准的,而逐步使用所有点是更直观的方式?

除了我的理论问题之外,有没有一个很好的例子,它使用循环进行单个时间步,而不是将整个窗口提供给 LSTM?

【问题讨论】:

    标签: tensorflow keras pytorch recurrent-neural-network


    【解决方案1】:

    RNN 的 PyTorch 和 TensorFlow 实现都是使用张量作为输入完成的,这些输入在 CPU 或 GPU 中通过向量运算进行处理)。这需要完整的输入张量存在于内存中。

    但是,您可以使用单个块的模型实现自己的 RNN,并在 for 循环中运行它,该循环将上一次迭代的输出作为模型的输入与当前迭代的常规输入一起插入。

    csirmaz 做了一个类似的东西,你可以作为参考:https://github.com/csirmaz/superloop

    【讨论】:

    • 嘿,我想也许我们错过了彼此。我想我对正常的培训和使用的东西很感兴趣。喜欢这里:tensorflow.org/tutorials/text/nmt_with_attention?hl=en#training
    • Ther3 您也可以使用 for 循环进行训练,这里比较 pytorch:blog.floydhub.com/gru-with-pytorch
    • 然后,我问了自己上面的问题。由于理论上的 apporocasch 对于非常单一的时间步也是循环的,对吧?我使用 1 的历史我能够训练可变长度模型,我也可以训练具有固定历史大小的模型....
    • 在 PT 和 TF 中,需要固定模型形状才能进行训练,这意味着固定的输入大小。通常的解决方法是使用非固定长度填充输入。
    猜你喜欢
    • 2018-09-24
    • 2016-12-02
    • 2018-10-24
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    • 1970-01-01
    相关资源
    最近更新 更多