给定逻辑( RNN/Lstm/Gru在时间主要格式(maxTime,batchSize,numberofClasses)中的输出),ctc贪婪解码器是如何进行解码以产生输出序列的。
我发现它的网页decoder“在输入(最佳路径)的逻辑上执行贪婪的解码”。
一种可能的方法是在每一时间步选择具有最大值的输出类,折叠重复并生成相应的输出序列。是反恐委员会贪婪的解码器在这里做什么还是别的什么?用一个例子来解释是非常有用的。
发布于 2018-08-01 12:57:31
操作ctc_greedy_decoder实现最佳路径解码,这在TF源代码1中也有说明。
解码分为两个步骤:
让我们看一个例子。神经网络输出的矩阵有5个时间步骤和3个字符("a“、"b”和空白"-")。我们采取最有可能的字符每一步,这给我们最好的路径:"aaa-b“。然后,我们删除重复字符并得到“a”。最后,我们删除所有空白并得到"ab“作为结果。

有关CTC的更多信息可以在2中找到,关于如何在Python中使用它的示例见3。
1 ctc_greedy_decoder:decoder.h#L69的实现
2有关CTC、最佳路径解码和波束搜索解码的更多信息:https://towardsdatascience.com/5a889a3d85a7
3示例代码,演示如何使用ctc_greedy_decoder:https://github.com/githubharald/SimpleHTR/blob/master/src/Model.py#L94
https://stackoverflow.com/questions/51580751
复制相似问题