以下Encoder-Decoder模型如何生成与输入大小不同的输出?

时间:2019-01-17 04:16:43

标签: keras lstm encoder-decoder

我在Keras中实现了以下教程:

https://towardsdatascience.com/nlp-sequence-to-sequence-networks-part-2-seq2seq-model-encoderdecoder-model-6c22e29fd7e1

作者在介绍中说,该设置非常适合将大小随机变化的输入序列与大小随机变化的输出序列进行匹配。我很困惑,因为我看不到如何生成与输入句子长度不同的句子输出。

像教程中一样,假设输入是英语句子,输出是法语句子。

我目前的理解如下:

编码器输入是英语句子,是要嵌入的整数序列。解码器输入是法语语句,是延迟一个时间步长的整数序列,序列中的第一个整数表示空值。该层也被嵌入。

目标是法语句子,它是一系列整数,没有延迟。我似乎需要在字段的末尾添加一个整数来表示字段的结尾,否则大小与解码器的嵌入式输入不匹配,并且keras会引发错误。

做出预测时,您究竟提供了什么?似乎不可能获得与输入长度不同的输出。是这样吗?

1 个答案:

答案 0 :(得分:0)

据我对本文https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf的理解,想法是您的解码器会预测状态(或单词),直到看到(预测)特定的单词(例如“ EOS”,即序列末尾的推论)为止。 。据我了解,输出长度不固定的原因。当然,您的训练数据必须适当,并带有特定的“ EOS”-标签。