首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tf.nn.ctc_greedy_decoder如何在tensorflow中生成输出序列?

tf.nn.ctc_greedy_decoder如何在tensorflow中生成输出序列?
EN

Stack Overflow用户
提问于 2018-07-29 13:25:28
回答 1查看 2.6K关注 0票数 3

给定逻辑( RNN/Lstm/Gru在时间主要格式(maxTime,batchSize,numberofClasses)中的输出),ctc贪婪解码器是如何进行解码以产生输出序列的。

我发现它的网页decoder“在输入(最佳路径)的逻辑上执行贪婪的解码”。

一种可能的方法是在每一时间步选择具有最大值的输出类,折叠重复并生成相应的输出序列。是反恐委员会贪婪的解码器在这里做什么还是别的什么?用一个例子来解释是非常有用的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-01 12:57:31

操作ctc_greedy_decoder实现最佳路径解码,这在TF源代码1中也有说明。

解码分为两个步骤:

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

让我们看一个例子。神经网络输出的矩阵有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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51580751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档