2016-08-16 8 views
1

TensorFlowの畳み込みにドロップアウトを単純に適用できるかどうかは疑問です。どのように適用されますか?畳み込みマスクの重みは、入力上で「スライド」している間にランダムにゼロに設定されていますか?TensorFlowサポートの畳み込みレイヤーがドロップアウトしますか?

+1

ドロップアウトは、コンボリューションの出力に適用されるには、いくつかの構造がDropoutWrapperを実装し、それを別のことを行うものの、フィルタの重み –

答えて

4

任意の入力テンソルでドロップアウトを適用できます。この入力がどのように計算されたかは問題ではありません。入力の各要素は単純に保持され(縮尺され、以下を参照)、ゼロに設定されます。

https://www.tensorflow.org/api_docs/python/tf/nn/dropoutより:

確率keep_probと、1/keep_probによってアップスケーリングされた入力要素、そうでなければ出力0を出力します。スケーリングは、期待される合計が変更されないようにします。

デフォルトでは、各要素は独立して保持または削除されます。例えば

conv = tf.nn.conv2d(...) 
drop = tf.nn.dropout(conv, keep_prob=0.5) 
+0

との対話は行われません。また、畳み込みレイヤーでドロップアウトを行う方法は複数あるようです(標準ドロップアウトとMCドロップアウト):https://arxiv.org/abs/1506.02158 –

+1

RNNのDropoutWrapper(https:// www。 tensorflow.org/versions/r0.10/api_docs/python/rnn_cell.html#DropoutWrapper)?そのドキュメントによると、それはまた、単に "入力および/または出力ドロップアウトです。ドロップアウトはその状態では使用されません。"ドロップアウトを行う他の方法は現在TensorFlowに実装されていないようです。 – fwalch

関連する問題