web-dev-qa-db-ja.com

TensorFlowの動的RNNとは何ですか?

動的RNNが何であるかについて混乱しています(つまり、dynamic_rnn)です。 TensorFlowで出力状態を返します。これらの状態と出力は何ですか? TensorFlowの動的RNNの動的とは何ですか?

12
xlax

動的RNNは、可変シーケンス長を可能にします。入力形状(batch_size, max_sequence_length)がある場合がありますが、これにより、max_sequence_lengthより短いシーケンスで正しいタイムステップ数のRNNを実行できます。

対照的に、静的RNNがあり、固定RNN長全体を実行することを期待しています。とにかく入力をmax_sequence_lengthにパディングする場合など、これを実行したい場合があります。

要するに、dynamic_rnnは通常、可変長の順次データに必要なものです。 sequence_lengthパラメータがあり、それはあなたの友達です。

14
AlexDelPiero

AlexDelPieroの答えは私が探していたものでしたが、元の質問は異なっていました。 LSTMとその背後にある直感についてのこの詳細な説明を見ることができます。 LSTMはRNNの最も一般的な例です。

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

簡単に言うと、状態は、あるタイムステップから別のタイムステップに渡される内部の詳細です。出力は、各タイムステップでの出力のテンソルです。通常、すべての出力を次のRNNレイヤーまたは最後のRNNレイヤーの最後の出力に渡す必要があります。最後の出力を取得するには、output [:、-1 、:]を使用できます

2
alyaxey