CTC Beam Seach с использованием Tensorflow Backend

Я новичок в этом вопросе и извините, если сомнение кажется глупым.

Документация keras и тензор потока предоставляют функцию ctc_decode, которая выполняет декодирование поиска луча ctc для выходных данных сети. В документации не приводится пример использования для декодера. https://github.com/igormq/ctc_tensorflow_example/blob/master/ctc_tensorflow_example.py предоставляет пример использования, но я не могу получить расшифрованный текстовый транскрипт.

Есть вопросы по stackru для печати выходного тензора, но я не получаю никакого вывода, так как выходные данные моего тензора имеют форму (?,?).

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

Пред является выходом нейронной сети. Пожалуйста, помогите мне понять, что происходит неправильно, так как я думаю, что должен получать числовые значения для символов, декодированных для прогноза, но я получаю [[0]].

Спасибо!

1 ответ

Решение

Если вы используете Keras, попробуйте 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)
Другие вопросы по тегам