1

ニューラルネットワークトレーニングのために列車を準備するとき、私は2つの可能な方法を見つける。画像の正規化を行う正しい方法はどれですか?

  1. 伝統的な方法:全体の訓練に平均値を計算するには、ネットワークに送信する前に画像ごとにこの固定平均値を設定し、マイナス。同様の方法で標準偏差を処理す​​る。
  2. テンソルフローは、の画像で正規化を行う関数tf.image.per_image_standardizationを提供しています。

私はより適切である方法だろうか?

答えて

1

どちらの方法が可能であり、選択肢はほとんどあなたがデータを読み取る方法に依存します。

  • 全体のトレーニングは、あなたがnumpyの配列に一度にデータセット全体をロードすることができたときに正規化は便利ですし。たとえば、MNIST datasetは、通常、完全にメモリにロードされます。この方法は、個々の画像が大きく異なる場合、収束の観点からも好ましい。すなわち、1つは大部分が白であり、もう1つはほとんど黒であり、2つの訓練画像は非常に異なる手段を有する。

  • 画像ごと正規化は、画像が1つずつまたは小さなバッチ、たとえばTFRecordから読み込まれるときに便利です。また、データセットが大きすぎてメモリに収まらない場合は、実行可能な唯一のオプションです。この場合、input pipeline in tensorflowを整理し、グラフの他のテンソルと同じようにイメージテンソルを変換する方が良いです。私はCIFAR-10でのこの正規化でかなり正確な精度を見てきました。したがって、以前に述べた問題にもかかわらず、実行可能な方法です。また、batch normalizationによって負の効果を減らすことができます。

関連する問題