【问题标题】:How does Keras initialize decoder first state in Encoder Decoder LSTM?Keras如何在Encoder Decoder LSTM中初始化decoder first state?
【发布时间】:2022-09-24 20:38:16
【问题描述】:

我的理解是,在编码器解码器 LSTM 中,解码器的第一个状态与编码器的最终状态(隐藏状态和单元状态)相同。但是我没有在下面的代码中看到明确的写法(取自许多 Keras 教程)。

model.add(LSTM(units, input_shape=(n_input, n_features),dropout=rdo, activation = keras.layers.LeakyReLU(alpha=0.2)))
model.add(RepeatVector(1))
model.add(LSTM(units, activation = keras.layers.LeakyReLU(alpha=0.2), return_sequences=True, dropout=rdo))
model.add(TimeDistributed(Dense(100, activation = keras.layers.LeakyReLU(alpha=0.2))))
model.add(TimeDistributed(Dense(n_features)))

这种状态传递是自动完成的吗?在哪个阶段?

更新:我认为我的假设可能不正确,因为这是一个顺序架构,因此只有一个输出被传递到解码器层。但是,我仍然想知道如何不将单元状态和隐藏状态从编码器传输到解码器仍然可以正常工作(我的意思是工作可以产生合理的预测?)。

    标签: python tensorflow lstm keras-layer encoder-decoder


    【解决方案1】:

    下面LSTM层中return_sequences的默认值为False。因此,该层的输出将是最后一个时间步的隐藏状态,因为它在最后一个时间步只考虑一个向量而忽略所有其他向量。这个隐藏状态被输入解码器。

    model.add(LSTM(units, input_shape=(n_input, n_features),dropout=rdo, activation = keras.layers.LeakyReLU(alpha=0.2)))
     
    

    请参阅此article 以获得详细说明。谢谢!

    【讨论】:

      猜你喜欢
      • 2022-08-10
      • 2021-06-06
      • 2020-12-01
      • 2019-06-21
      • 2022-12-16
      • 1970-01-01
      • 1970-01-01
      • 2010-12-30
      • 1970-01-01
      相关资源
      最近更新 更多