2016-06-21 5 views
5

TensorFlow CTC実装でビームスコアラーをPython側からカスタマイズすることは可能ですか?私はCTCBeamSearchDecoder C++クラスのコンストラクタのコメントでこの可能性を見ていますが、この機能をPythonユーザに提供する方法は不思議ですか?TensorFlow CTC(言語モデル)でカスタムビームスコアラーを使用する

特定の問題は、言語モデルをCTCベースの音声デコーダに差し込むことです。言語モデルは、あらかじめ訓練されたTensorFlowサブグラフであり、ビームスコア調整の確率を出力することができる。しかし、これをビーム・スコアラーに注入する方法が必要です。

答えて

5

現在、カスタムスコアラーとともに言語モデルを使用するPython用のAPIはありません。寄稿は歓迎ですが、Python APIでこれを可能にすることにはいくつかの難しさがあります。なぜなら、TFのLMサブグラフをデコーダop内の独立したセッションで実行する必要があり、それらはうまく融合しません。

これを行う最も簡単な方法はC++であり、BeamState(テストで見られるようなもの)と一緒にBaseBeamScorerクラスを拡張し、テンソルフローグラフの出力の上にCTCBeamSearchDecoder :: Decodeをさらに実行する必要があります。通常はctc_beam_search_decoderオペレーションに入ります。

BeamScorerの実装では、手元にある言語モデルを利用でき、ある状態から別の状態にビームを拡張するときに適切なスコアを返すだけで済みます。

+0

理論的には、whileループのようにLMサブグラフに機能的なラムダを利用することは可能ですか?したがって、デコーダopは独立したセッションを呼び出していませんか? –

関連する問題