2017-05-31 46 views
0

我是這個主題的初學者,如果懷疑似乎很愚蠢,對不起。使用Tensorflow後端的CTC Beam Seach

keras文檔和tensorflow提供了一個函數ctc_decode,它對網絡輸出進行ctc束搜索解碼。該文檔不提供解碼器的示例用法。 https://github.com/igormq/ctc_tensorflow_example/blob/master/ctc_tensorflow_example.py提供了一個示例用法,但我無法檢索解碼的文本轉錄。

打印輸出張量時,有一些問題在打印輸出張量時出現,但由於張量輸出的形狀(?,?)沒有得到任何輸出。

>>> 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]]。

謝謝!

回答

0

如果您使用的是Keras,請嘗試K.get_value(dec[0])

相關問題