TensorFlowは、RNNを作成するために次の機能を提供します。rnn()
,dynamic_rnn()
,state_saving_rnn()
およびbidirectional_rnn()
。 state_saving_rnn()
機能をいつ使用したいのですか?TensorFlowでstate_saving_rnn()関数を使用する理由は何ですか?
私はこれが大きなRNNのためだと推測しています。時間をずらして展開すると、潜在的に非常に深いネットワークが得られ、各レイヤーに多くのパラメータがある場合、GPUのメモリが不足する可能性があります。したがって、この関数は各タイムステップで状態を保存します(おそらく、ディスクやGPUではなくCPUのメモリに保存されます)。それは一般的な考えですか?
コードスニペット、またはそれを使用するコードへのポインタを提供してください。特に、私は正確に状態保存がいつ呼び出されるのかを理解したいと思います(それぞれの時間ステップで?)。特にtf.contrib.training.SequenceQueueingStateSaverセクションの https://www.tensorflow.org/versions/master/api_docs/python/contrib.training.html
ルック:
Thanks Pete。私はこれを忘れて申し訳ありませんが、TFのドキュメンテーションであなたが探しているものを見つけることは時折困難です。実際にはGoogle検索を使用する方が簡単です。私は単に "site:tensorflow.org state_saving_rnn"でGoogle検索を行い、リンクは#5でした。今私は知っているよ。 ;-) – MiniQuark