動的RNNが何であるかについて混乱しています(つまり、dynamic_rnn
)です。 TensorFlowで出力と状態を返します。これらの状態と出力は何ですか? TensorFlowの動的RNNの動的とは何ですか?
動的RNNは、可変シーケンス長を可能にします。入力形状(batch_size, max_sequence_length)
がある場合がありますが、これにより、max_sequence_length
より短いシーケンスで正しいタイムステップ数のRNNを実行できます。
対照的に、静的RNNがあり、固定RNN長全体を実行することを期待しています。とにかく入力をmax_sequence_length
にパディングする場合など、これを実行したい場合があります。
要するに、dynamic_rnn
は通常、可変長の順次データに必要なものです。 sequence_length
パラメータがあり、それはあなたの友達です。
AlexDelPieroの答えは私が探していたものでしたが、元の質問は異なっていました。 LSTMとその背後にある直感についてのこの詳細な説明を見ることができます。 LSTMはRNNの最も一般的な例です。
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
簡単に言うと、状態は、あるタイムステップから別のタイムステップに渡される内部の詳細です。出力は、各タイムステップでの出力のテンソルです。通常、すべての出力を次のRNNレイヤーまたは最後のRNNレイヤーの最後の出力に渡す必要があります。最後の出力を取得するには、output [:、-1 、:]を使用できます