2017-12-18 197 views
1

在準備用於神經網絡訓練的訓練集時,我找到兩種可能的方法。哪種方法可以進行圖像歸一化?

  1. 的傳統方法:計算上整個訓練的平均發送到網絡之前設置,再減去每幅圖像此固定平均值。以類似的方式處理標準偏差。
  2. 我發現tensorflow提供的功能tf.image.per_image_standardization單一圖像正常化。

我不知道哪種方式更合適?

回答

1

兩種方式都是可能的選擇主要取決於你讀數據的方式。

  • 整個訓練集正常化時非常方便,你可以一次加載整個數據集到一個數組numpy的。例如,MNIST dataset通常被完全加載到內存中。當個體圖像顯着變化時,這種方式在收斂性方面也是優選的:兩個訓練圖像,一個大多是白色,另一個大多是黑色,將具有非常不同的手段。

  • 每個圖像當圖像逐個加載或小批量加載時(例如從TFRecord加載),規範化非常方便。當數據集太大,太適合內存時,它也是唯一可行的選擇。在這種情況下,最好組織input pipeline in tensorflow並像圖中其他張量一樣轉換圖像張量。在CIFAR-10中我已經看到了這種標準化的非常好的準確性,儘管存在前面提到的問題,但這是一種可行的方法。另請注意,您可以通過batch normalization減少負面影響。

相關問題