Keras seq2seq模型输出形状

mi7gmzs6  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(200)

我在这里工作的keras seq2seq例子:https://blog.keras.io/a-ten-minute-introduction-to-sequence-to-sequence-learning-in-keras.html我从文本中理解的是,在解码器模型中,每个单元的输出都是下一个单元的输入。但是,我不理解如何实现对模型的递归。在链接中,它使解码器模型如下所示。

decoder_model = Model(
        [decoder_inputs] + decoder_states_inputs,
        [decoder_outputs] + decoder_states)

这个语法是如何告诉模型每个单元格的输出是下一个单元格的输入的呢?

EDIT:当你检查keras.Model文档时,你会意识到一个模型可以接受keras.Input对象的列表作为输入参数,注意**[decoder_inputs] + decoder_states_inputs**是一个列表。

m2xkgtsf

m2xkgtsf1#

如果您查看Keras Modelhere的文档,您将看到Model()函数分别将inputsoutputs作为其第一个和第二个参数(Model(inputs, outputs))。它指定模型的输入层和输出层(在您的例子中,是一个解码器,它将在您所链接的文章末尾的decode_sequence()函数的推理循环中使用)。
为了更详细地说明您发布的代码片段,您将提供decoder_inputsdecoder_states_inputs作为Model(inputs, outputs)inputs参数,以指定解码器模型的输入层:

  • decoder_inputs是长度为num_decoder_tokensInput对象(KerasTensor),使用Input()函数(请参见Input)示例化,该函数仅接受输入标记(字符)。
  • 类似地,decoder_states_inputs是用于解码器的隐藏输入状态和单元状态的两个InputTensor的列表,长度均为latent_dim

同样,将decoder_outputsdecoder_states一起作为Model(inputs, outputs)outputs参数提供,以指定模型的输出层:

  • decoder_outputs最终成为用于输出激活的密集连接的NN层(参见Dense)。
  • decoder_states是包含decoder_lstm的隐藏状态state_h和单元状态state_c的列表。

相关问题