/ / Използване на персонализиран лъчев ударник в TensorFlow CTC (езиков модел) - tensorflow, езиков модел

Използване на персонализиран записвач в TensorFlow CTC (езиков модел) - tensorflow, езиков модел

Възможно ли е да се персонализира геймъритеTensorFlow CTC изпълнение от страна на Python? Виждам тази възможност в коментар за CTCBeamSearchDecoder C ++ конструктор на класа, но се чудя как да предостави тази функционалност за потребителите на Python?

Специфичен въпрос, който имаме, е включването наезиков модел в CTC базиран речев декодер. Езиковият модел може евентуално да бъде предварително подготвена под-графика на TensorFlow, способна да извежда вероятности за корекция на гредата. Но ние се нуждаем от начин да го инжектираме в греда.

Отговори:

5 за отговор № 1

Понастоящем няма API за използване на Pythonезиков модел с персонализиран секретар. Приносът е добре дошъл, но има някаква трудност да се направи това възможно в API на Python, тъй като би изисквало изпълнението на TF LM под-графиката в независима сесия вътре в декодера, а тези не биха се смесили добре заедно.

Най-лесният начин да направите това е в C ++ иизисква разширяване на класа BaseBeamScorer заедно с BeamState (подобно на това, което може да се види в тестовете) и по-нататъшно пускане на CTCBeamSearchDecoder :: Decode върху изходите от графиката tensorflow, която нормално ще бъде в ctc_beam_search_decoder op.

Правейки това, вашата BeamScorer реализация може да се възползва от всеки езиков модел, който имате под ръка, и просто трябва да върнете съответните резултати, когато разширявате лъча от едно състояние в друго.