繁体   English   中英

使用 Tensorflow 后端进行 CTC 波束搜索

[英]CTC Beam Search using Tensorflow Backend

keras 文档和 tensorflow 提供了一个函数 ctc_decode,它对网络的输出进行 ctc 波束搜索解码。 该文档没有提供解码器的示例用法。 https://github.com/igormq/ctc_tensorflow_example/blob/master/ctc_tensorflow_example.py提供了一个示例用法,但我无法检索解码的文本成绩单。

有关于打印输出张量的 stackoverflow 的问题,但我没有得到任何输出,因为我的张量的输出是形状(?,?)。

>>> pred.shape
(1, 489, 29)
>>> dec, logp = K.ctc_decode(K.variable(pred, dtype='float32'), 
K.variable([489],dtype='int32'),greedy=False)
>>> dec
[<tf.Tensor 'SparseToDense:0' shape=(?, ?) dtype=int64>]
>>> dec[0]
<tf.Tensor 'SparseToDense:0' shape=(?, ?) dtype=int64>
>>> s = tf.Session()
>>> s.run(tf.global_variables_initializer())
>>> print dec[0].eval(session=s)
[[0]]

pred 是神经网络的输出。 请帮助我了解出了什么问题,因为我认为我应该获得为预测解码的字符的数值,但我得到的是 [[0]]。

如果您使用的是K.get_value(dec[0]) ,请尝试K.get_value(dec[0])

dec_tf, logp_tf = K.ctc_decode(K.variable(pred, dtype='float32'), K.variable([489],dtype='int32'),greedy=False)
dec = K.eval(dec_tf)
logp = K.eval(logp_tf)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM