2017-05-22 8 views
-1

私はtf.nn.dropoutコマンドを学習しています。ドキュメンテーションによると、確率keep_probでは、入力要素を1/keep_probでスケールアップし、それ以外の場合は0を出力します。スケーリングは、期待される合計が変更されないようにします。誰かがなぜ1/keep_probを取るのか説明してください。私はその値を0.1に設定します。私がノードを10%しか持たないということですか?tf.nn.dropoutでkeep_prob引数の効果は何ですか?

答えて

0

スケーリング係数は、テストまたは評価時にドロップアウトを無効にする必要があるため、1/keep_probに設定されています。テンソルフロー層の高レベルAPI:tf.layers.dropoutを参照してください。

テストまたは評価中、各ユニットの起動はスケーリングされません。トレーニング中の1/keep_probのスケーリング係数は、期待されるアクティブ化(keep_prob *(1/keep_prob)= 1)がテストの有効化と同じであることを確認します。 詳細はpaperにあります。

レイヤーに10単位があり、keep_probが0.1に設定されていると仮定すると、ランダムに選択された9単位のアクティブ化は0に設定され、残りの1単位は10のスケールでスケーリングされます。より正確な説明は、ノードの10%のアクティブ化のみを維持することだと考えてください。

関連する問題