beamsearch 实现(python)

本文介绍了Beam Search算法,这是一种在解码阶段采用多路径探索的策略,每次生成beam_size个可能的序列,并逐步扩展,直到找到最优结果或达到最大长度。主要应用于NLP中的seq2seq任务。
摘要由CSDN通过智能技术生成

beamsearch

beamsearch 算是一种单模型的集成算法,在decoder端的每一步,不再是单纯的只生成一个token,而是beam_size大小的token,这样会生成beam_size个备选序列
而由beam_size个备选序列,继续向后扩展,会生成beam_size*beam_size个备选序列,对其进行截断,保留概率最大的beam_size备选序列
重复上述过程,直到达到最优结果 或者 达到序列最大长度
注: 该算法只在test截断使用
知乎高赞答案如下:
这里写图片描述

代码如下:

def beam_search(decoder, num_beams, max_len, *input):
    """
    a beam search implementation about seq2seq with attention
    :param decoder:
    :param num_beams: number of beam, int
    :param max_len: max length of result
    :param 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值