- tf.nn.rnn_cell.DropoutWrapper() を呼び出すときに、テンソルフローは具体的にどのようにドロップアウトを適用しますか?
rnn へのドロップアウトの適用について私が読んだものはすべて、Zaremba らによるこの論文を参照しています。alは、繰り返し接続の間にドロップアウトを適用しないことを示しています。ニューロンは、LSTM レイヤーの前または後にランダムに削除する必要がありますが、LSTM レイヤー間では削除しないでください。Ok。
- 私が持っている質問は、時間に関してニューロンがどのようにオフになっているのですか?
誰もが引用している論文では、1 つのランダムな「ドロップアウト マスク」を生成して再利用するのではなく、ランダムな「ドロップアウト マスク」がタイムステップごとに適用され、ドロップアウトされる特定のレイヤーのすべてのタイムステップに適用されているようです。次に、次のバッチで新しい「ドロップアウト マスク」を生成します。
さらに、おそらく現時点でより重要なのは、テンソルフローはどのようにそれを行うのでしょうか? tensorflow api を確認し、詳細な説明を探してみましたが、まだ見つかりません。
- 実際の tensorflow ソース コードを掘り下げる方法はありますか?