【问题标题】:Many to many RNN in keras - predict output for every nth inputkeras中的多对多RNN - 预测每第n个输入的输出
【发布时间】:2019-02-12 16:38:41
【问题描述】:

我试图弄清楚如何使用 LSTM/GRU 构建一个模型,该模型可以预测多对多但每第 n 个(在我的情况下为 7 个)输入。例如,我的输入数据在一整年中每天都有时间步长,但我只是试图预测每周结束时的输出,而不是每天。

我能找到的唯一信息是这个答案: Many to one and many to many LSTM examples in Keras

它说: “当步数与输入/输出长度不同时的多对多:这在 Keras 中非常困难。没有简单的代码 sn-ps 来编码。”

在 pytorch 中,您似乎可以在损失函数中设置 ignore_index,我认为这应该可以解决问题。

keras 有解决方案吗?

【问题讨论】:

    标签: keras neural-network deep-learning


    【解决方案1】:

    我想我找到了答案。由于我试图预测每个第 n 个值,我们可以只保留我们试图预测的 LSTM 层的输出并摆脱其余的。我创建了一个 lambda 层来做到这一点 - 它只是从 lstm 输出中读取每 7 个值。 这是代码:

    X = np.random.normal(0,1,size=(100,365,5))
    y = np.random.randint(2,size=(100,52,1))
    model = Sequential()
    model.add(LSTM(1, input_shape=(365, 5), return_sequences=True))
    model.add(Lambda(lambda x: x[:, 6::7, :]))
    model.add(TimeDistributed(Dense(1,activation='sigmoid')))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    model.fit(X,y,epochs=3,verbose=1)
    

    【讨论】:

      猜你喜欢
      • 2022-12-10
      • 2018-02-16
      • 2018-08-08
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 2017-12-30
      • 1970-01-01
      相关资源
      最近更新 更多