2016-08-16 2 views
1

TensorFlow의 컨볼루션에 드롭 아웃을 적용 할 수 있는지 궁금합니다. 어떻게 적용됩니까? 콘볼 ​​루션 마스크의 가중치는 입력 위에 '슬라이드'하는 동안 무작위로 0으로 설정됩니까?TensorFlow의 컨볼 루션 계층이 드롭 아웃을 지원합니까?

+1

드롭 아웃은 회선의 출력에 적용되는 일부 구조가 DropoutWrapper를 구현하고 그것으로 다른 일을하지만 필터 무게 –

답변

4

임의의 입력 텐서에서 드롭 아웃을 적용 할 수 있습니다. 이 입력이 어떻게 계산되었는지는 중요하지 않습니다. 입력의 각 요소는 단순히 유지되고 (스케일링, 아래 참조) 또는 0으로 설정됩니다. 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 (https : // www. tensorflow.org/versions/r0.10/api_docs/python/rnn_cell.html#DropoutWrapper)? 그것의 문서에 따르면, 그것은 또한 "입력 및/또는 출력 드롭 아웃을 수행합니다. 드롭 아웃은 절대로 상태에 사용되지 않습니다." 드롭 아웃을하는 다른 방법이 TensorFlow에서 현재 구현되지 않은 것 같습니다. – fwalch

관련 문제