0

TensorflowのCNNを使用してトリプレットのデータを使用して遠隔学習を実装しました。このために、私は各レイヤーに共通のウェイトセットを持っています。私はオーバーフィットを補うためにドロップアウト技術を採用したい。私は、次の方法でこれを行うことを考えていた。ここで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つのデータサンプルの出力です。これは、ドロップアウトが確率的であるという意味で潜在的な問題を提起する。なぜなら、たとえ同じドロップアウト確率を提供していても、3つの出力のそれぞれに対して異なるセットのニューロンがドロップされる可能性があるのに対し、理想的には、それぞれのために使用される。このコンテキストでドロップアウトを実装する適切な方法は何でしょうか?

答えて

1

すべてが同じ形状であると仮定して、同じシードを設定するとすべて同じにする必要があります。

実際には、データサンプルはミニバッチ化されており、tf.nn.dropoutはミニバッチ全体に同じ単位をドロップするので、ここでは例を積み重ねることに切り替えるのが良い方法でしょう。

関連する問題