4

現在、腐敗したリンゴと通常のリンゴを外見に基づいて分類するために、畳み込みニューラルネットワークをトレーニングしています。私はすべての必要なデータを持っていますが、次のコード行について質問があります。私は自分のCNNをどんな順序でトレーニングするのですか

epoch_x, epoch_y = tf.train.batch([resized_image, "Normal"], batch_size=batch_size) 

これは、ニューラルネットワークに画像とラベルを供給します。私の質問は、私は正常なオレンジのすべてのバッチでネットワークを訓練し、腐ったオレンジで神経ネットワークを訓練する必要がありますか?私は、腐ったオレンジと通常のオレンジのバッチを訓練する代わりにすべきですか?これらの画像を訓練する特定の順序はありますか?

+0

これは同様ですか?[質問](http://stackoverflow.com/questions/8101925/effects-of-randomizing-the-order-of-inputs-to-a-neural-network)? – vendaTrout

答えて

6

特定の順序でトレーニングしないでください。各バッチには、肯定的な例と否定的な例がランダムな順序で含まれている必要があります。クラスのバランスが取れている場合、各バッチにはほぼ同じ数の正/負のサンプルがあります。

これを行う最も簡単な方法は、(最初​​の次元で)データをランダムにシャッフルしてから、連続してバッチを作成することです。各エポック後にデータを再シャッフルすることも良い方法です。そのため、ニューラルネットワークでは、サンプルが表示される順序でパターンが表示されません。

このテクニックは、ニューラルネットワークトレーニングのあらゆる種類の偏りを防ぎます。

+0

ああ私はそれを知らなかった。各バッチには正と負の例が含まれていますか?ニューラルネットワークは、どのイメージが陽性であり、どのイメージが陰性であるかをどのように知っていますか?これはどこで指定しますか? –

+0

@RehaanAhmadラベル(y)は、各サンプルがどのクラスに属するかをNNに伝えます。 –

+0

お待ちください、詳細をお知らせください。これらのラベルをテンソルフローで定義する方法を教えてください。 –

関連する問題