2017-05-30 3 views
1

私はthis tutorialに行きました。最後のブロックでは、dynamic_rnn関数を適用して注目を計算することはできません。しかし私が理解していないのは、エンコーダーシンボルでうまくいく注意を見つけるためにデコーダの隠れた状態が必要なことだけです。テンソルフローのtf.nn.dynamic_rnnとtf.nn.raw_rnnの違いは何ですか?

+1

隠れ状態は、注意メカニズム –

+1

良いものに使用されています。それは私たちが一生懸命遊ぶ生のRNNのようなものです。新しい注意、メソッドのエンコードなど –

答えて

0

エンコーダ/デコーダのコンテキストにおける注意の仕組みは、各時間ステップのデコーダがエンコーダの「有用な」部分に「参加」することを意味します。これは、例えば、エンコーダの出力を平均し、その値(コンテキストと呼ばれる)を所与の時間ステップでデコーダに供給することによって実現される。

dynamic_rnnは、すべてのタイムステップでLSTMセルの出力を計算し、最終的な値を返します。したがって、時間ステップtのセル状態は、以前のセルと入力の出力だけでなく、コンテキストなどの追加情報にも依存する必要があることをモデルに伝える方法はありません。 raw_rnnを使用して、エンコーダまたはデコーダLSTMの各タイムステップで計算を制御できます。

私が正しく理解していれば、このチュートリアルでは、著者はグラウンドトゥルース入力を各タイムステップでの入力としてデコーダに送ります。しかし、これは通常のやり方ではありません。通常、時間でデコーダへの入力として時刻tのデコーダの出力を供給したいとします。要するに、各時間ステップでのデコーダへの入力は可変であるのに対し、dynamic_rnnではそれはあらかじめ定義されている。

は、技術的な詳細についてを参照してください:エンコーダのhttps://arxiv.org/abs/1409.0473

関連する問題