问题标签 [beam-search]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
341 浏览

python-3.x - Tensorflow:使用 Attention 和 BeamSearch 的 seq2seq 模型中 .clone() 的问题

我正在尝试实现一个 seq2seq 模型,在 Tensorflow (1.6.0) 中使用 bidirectional_dynamic_decode、Attention 和 BeamSearchDecoder。(我试图只复制相关代码,以保持简单)

但是,当我尝试将编码器的最后状态克隆到上图中的“beam_initial_state”变量时,出现以下错误:

有人给点建议吗?提前非常感谢。

0 投票
1 回答
237 浏览

search - 基于波束搜索算法

基于波束搜索算法,图中每个节点的去概率取决于什么?我的意思是什么特征给了节点它的搜索概率?

0 投票
0 回答
268 浏览

tensorflow - tf.nn.ctc_beam_search_decoder 和 tf.contrib.seq2seq.BeamSearchDecoder 机制有什么区别?

我正在用 tensorflow 构建一个 seq2seq 模型。你能解释一下这两个波束搜索功能的细节吗?谢谢你。

tf.nn.ctc.beam_search_decoder https://www.tensorflow.org/api_docs/python/tf/nn/ctc_beam_search_decoder

tf.contrib.seq2seq.BeamSearchDecoder https://www.tensorflow.org/api_docs/python/tf/contrib/seq2seq/BeamSearchDecoder

0 投票
0 回答
56 浏览

nlp - 使用谷歌翻译访问词级预测

我正在考虑一个涉及翻译的研究项目,为此,我想使用谷歌的翻译系统。但是,我不仅需要访问输入句子的翻译,还需要使用每个时间步的概率进行波束搜索的输出,例如:

输入:“猫坐着”输出(例如西班牙语):

t=1: el: 0.8, un: 0.1, ...: 0.1

t = 2:el gato:0.9,el felino:0.05,un gato:0.001 ...

t=3...

有什么办法可以得到这个吗?我试过用 Tensor2Tensor 训练一个模型,但它比谷歌的在线翻译差得多,而且仍然很难获得增量结果。Fairseq 更好,但仍然比谷歌翻译差得​​多。

谢谢!

鲁本

0 投票
1 回答
132 浏览

amazon-sagemaker - 如何在 SageMaker 托管端点中实施波束搜索解码器?

我为 Seq2Seq 神经网络创建了一个 SageMaker 模型,然后启动了一个 SageMaker 端点:

此标准端点不支持光束搜索。创建支持波束搜索的 SageMaker 端点的最佳方法是什么?

0 投票
1 回答
228 浏览

monte-carlo-tree-search - 什么是神经网络中的 Monte Carlo Beam Search?

Monte Carlo Beam Search 在神经网络和强化学习研究中经常被引用。它是什么以及它与蒙特卡洛搜索有何不同。

0 投票
1 回答
2569 浏览

machine-learning - Beam Search 如何对 The Transformer 的输出进行操作?

根据我的理解(如果我错了,请纠正我),Beam Search 是 BFS,它只探索最可能的选项b下的可能性“图”,其中b是光束大小。

为了计算/评分每个选项,特别是对于我正在做的 NLP 领域的工作,我们基本上通过计算令牌的概率来计算可能性的分数,给定它之前的所有内容。

这在循环架构中是有意义的,在这种架构中,您只需通过最佳b个第一个令牌运行您的解码器模型,以获得每个第一个令牌的第二个令牌的概率。最终,您会得到具有概率的序列,然后您只需选择概率最高的序列。

然而,在 Transformer 架构中,模型没有这种重复性,输出是词汇表中每个单词、序列中每个位置的整个概率(批量大小、最大序列长度、词汇大小)。我如何解释 Beam Search 的这个输出?我可以得到输入序列的编码,但是由于没有重复使用前一个输出作为下一个令牌解码的输入,我该如何计算源自最佳b的所有可能序列的概率代币?

0 投票
1 回答
712 浏览

python - 如何在 PyTorch 中检索多行的 topk 值及其各自的索引?

我有一个这样的张量:

我想获得topk两行的值。目前我能做的是以下几点:

从输出中,您可以看到前 2 个值是从两行中检索到的。我想得到如下输出:

请注意,如果前 2 个值在第一行中,它只会从那里返回值并完全忽略第二行,反之亦然。

在这方面需要帮助。

以下是我想说的一种非常老套的方法,但它非常老套,并且显示为 BEAM_WIDTH 为 2:

0 投票
2 回答
1478 浏览

python - 如何正确使用 tensorflow ctc 光束搜索?

我想对音素概率值矩阵(给出的 ASR 模型的输出)执行 CTC Beam Search。Tensorflow 有一个 CTC Beam Search实现,但它的文档记录很差,我没有给出一个有效的例子。我想编写一个代码以将其用作基准。

到目前为止,这是我的代码:

我在理解代码时遇到问题:

  • 在示例中,垫子的形状为 (2, 4),但 tensorflow 模块需要 (2, 1, 4) 形状,所以我用它重塑垫子matrix = np.reshape(matrix, (matrix.shape[0], 1,matrix.shape[1])) 但这在数学上意味着什么?垫子矩阵是一样的吗?还是我在这里混在一起?中间的 1 是我理解的批量大小。
  • decode_ctcBeam函数返回一个列表,在它给出的示例中 [2],这应该意味着来自已定义类的“CH” 。如果我有一个更大的输入矩阵,比如说 40 个音素,我该如何概括这一点并找到识别的音素序列?

期待您的回答/评论!谢谢!

0 投票
1 回答
243 浏览

deep-learning - CTC语音识别中常用的前缀波束搜索可以用这种更简单的方式实现吗?

最近在学习语音识别,了解到前缀beam search的思想是把具有相同前缀的路径合并起来,比如[1,1,_]and [_,1,_](可以看到,_表示空白标记)。

基于这种理解,我实现了我的一个版本,可以使用如下伪代码进行简化:

但是我在网上找到的大多数版本(根据论文)都是这样的:

两者的结果不同,我的版本倾向于返回更长的字符串。而且我不太了解主要的两个方面:

  1. 我的版本有什么细节没有考虑到吗?
  2. 通用版本同时生成新前缀,new_prefix = prefix + (i,)无论前一个的结尾是否与给定的's'相同。例如,旧前缀是[a,a,b]and,当添加新字符 s 时,都保存[a,a,b][a,a,b,b]如果这样做有什么目的?它会导致重复计算吗?

期待您的回答,提前致谢!