如何计算给定输入和预期输出的ctc概率?

时间:2017-01-22 08:39:07

标签: python c++ tensorflow

我正在做我的第一个tensorflow项目。

我需要获得给定输入和预期序列的ctc概率(不是ctc损失)。

在python或c ++中有没有api或方法呢?

我更喜欢python方面,但c ++方面也没关系。

1 个答案:

答案 0 :(得分:0)

根据Graves论文[1],批次的损失定义为该批次中所有样品(x,z)的总和(log(p(z | x)))。 如果使用批量大小为1,则得到log(p(z | x)),即给定输入x时看到标记z的对数概率。这可以通过TensorFlow的ctc_loss函数来实现。

您也可以自己实现论文[1]第4.1节中描述的前向 - 后向算法的相关部分。 对于小输入序列,通过构造图3中所示的路径然后对RNN输出中的所有路径求和,可以使用朴素实现。 我这样做是为了一个长度为16的序列和一个长度为100的序列。对于前一个,天真的方法就足够了,而对于后一个,需要提出动态编程方法。

[1]连接主义时间分类:用递归神经网络标记未分段的序列数据