怎么会呢tf.nn.ctc_贪心解码器在tensorflow中生成输出序列?

2024-06-08 17:30:45 发布

您现在位置:Python中文网/ 问答频道 /正文

给定logits(从RNN/Lstm/Gru以时间主格式输出,即(maxTime,batchSize,numberofClasses)),ctc贪婪解码器如何执行解码以生成输出序列。在

我在它的网页https://www.tensorflow.org/api_docs/python/tf/nn/ctc_greedy_decoder上发现了这个“对input(best path)中给定的logits执行贪婪解码”。在

一种可能性是在每个时间步选择最大值的输出类,折叠重复并生成相应的输出序列。是ctc贪婪解码器在这里还是其他什么?举例说明很有用。在


Tags: https网页格式时间序列解码器解码lstm
1条回答
网友
1楼 · 发布于 2024-06-08 17:30:45

ctc贪心译码器的运算实现了最佳路径解码,这在TF源代码[1]中也有说明。在

解码分两步完成:

  1. 将每个时间步的最可能字符串联起来,从而产生最佳路径。在
  2. 然后,通过先删除重复字符,然后删除所有空白来撤消编码。这给了我们公认的文本。在

让我们看一个例子。神经网络输出具有5个时间步长和3个字符的矩阵(“A”、“B”和空白“-”)。 我们在每个时间步中选择最有可能的字符,这给了我们最好的路径:“aaa-b”。 然后,我们去掉重复字符,得到“a-b”。最后,我们去掉所有空白,得到“ab”作为结果。在

best path decoding

关于CTC的更多信息可以在[2]中找到,关于如何在Python中使用它的一个例子如[3]所示。在


[1]ctc贪心译码器的实现:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/util/ctc/ctc_decoder.h#L69

[2]关于CTC、最佳路径解码和波束搜索解码的更多信息:https://towardsdatascience.com/5a889a3d85a7

[3]演示如何使用ctc贪心解码器的示例代码:https://github.com/githubharald/SimpleHTR/blob/master/src/Model.py#L94

相关问题 更多 >