beam-search及其torch实现

注: 来源于cs224n2019-a4作业代码
NG视频介绍
我的另一篇博客
在这里插入图片描述
beam-search为一种解码算法,应用于test部分,在train中不使用因为train都会有一个正确答案,并不需要特地的去选择。思想~~最短路径,一定要理解它与维特比算法以及greedysearch之间的区别,这里不多叙述。

流程

以【seq2seq-attention】为例,beam-size= 3,输入X首先通过encoder部分形成decoder的初始状态(decoder-init-state),decoder还需要初始输入’(start)’,然后从输出中选择3个概率最高的词,放入候选列表中,这三个词作为下一轮decoder的输入,每个词生成另外3个概率最高的词(**也就是说第二轮decoder将生成9个词),从这些词中再次选择概率最高的三个词,以此类推,直至出现‘(end)’或者达到最大解码次数为止

代码

https://github.com/pcyin/pytorch_basic_nmt/blob/master/nmt.py

发布了48 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/NewDreamstyle/article/details/98350638
今日推荐