0

Tensorflow의 CNN을 사용하여 세 쌍의 데이터를 사용하여 원격 학습을 구현했습니다. 이를 위해 각 레이어에 대해 가중치 세트를 공유합니다. 과도한 피팅을 보상하기 위해 드롭 아웃 기법을 사용하고 싶습니다. I는 다음과 같은 방법으로 이렇게 생각했다 : 여기Tensorflow의 탈락 삼중 항 기반 교육을 사용하는 동안의 CNN 네트워크

h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob) 
h_fc2_drop = tf.nn.dropout(h_fc2, keep_prob) 
h_fc3_drop = tf.nn.dropout(h_fc3, keep_prob) 

, h_fci이 이전 층으로부터 세 개의 데이터 샘플 출력이다. 이것은 드롭 아웃이 확률 적이라는 의미에서 잠재적 인 문제를 제기합니다. 따라서 동일한 드롭 아웃 확률을 제공하더라도 3 개의 출력 각각에 대해 서로 다른 뉴런 세트를 드롭하는 것이 가능하지만 이상적으로는 동일한 뉴런 세트를 각각을 위해 사용된다. 이 상황에서 드롭 아웃을 구현하는 올바른 방법은 무엇입니까?

답변

1

모든 것이 동일한 모양을 가지고 있다고 가정하면, 동일한 시드를 설정하면 모두 동일하게해야합니다.

실제로 데이터 샘플은 minibatched이고 tf.nn.dropout은 전체 minibatch에서 동일한 단위를 제거하므로 예제를 스택으로 전환하는 것이 좋습니다.

관련 문제