令牌<EOS>
在NLP中被普遍使用。因为我还没有使用它,所以对它的条件化实施对我来说还不清楚。谁能提供一段Python代码。 (如果可以使用语句。)
示例1:有一个单词序列,其中插有一些<EOS>
标记。该序列通过RNN进行编码。每当遇到<EOS>
时,时间步都会输出其状态。
示例2:机器翻译任务。当遇到<EOS>
时,它将停止生成令牌。
答案 0 :(得分:0)
EOS令牌对解码器也很重要:显式的“ end”令牌允许解码器发出任意长度的序列。解码器将告诉我们何时完成了令牌的发布:如果没有“结束”令牌,我们将不知道解码器何时与我们交谈,并且继续发出令牌会产生乱码。
因此,对于给出的示例,我有image captioning中的这段代码,它与机器翻译有关:
# Which sequences are incomplete (didn't reach <end>)?
incomplete_inds = [ind for ind, next_word in enumerate(next_word_inds) if
next_word != word_map['<end>']]
complete_inds = list(set(range(len(next_word_inds))) - set(incomplete_inds))
此处令牌<end>
与<EOS>
类似。生成图像标题时,此代码段正在寻找<end>
令牌。当然,我们想知道何时停止,并且在训练步骤中预先知道了字幕的长度,用于图像的字幕边界。