2017-07-07 235 views
0

我想微調ResNet50 ImageNet預訓練模型,並對微調圖像預處理有一些疑問。ResNet中fintune的圖像預處理

  1. 在ImageNet預處理中,我們需要減去像素的平均值([103.939,116.779,123.68])。當我使用我的數據集進行微調時,應該減去ImageNet的平均值還是減去數據的平均值。

  2. 我的確看到很多人將數據重新標定爲[0,1],但預訓練模型(ImageNet)在[0,255]中使用圖像比例。爲什麼人們這樣做?這是合理的嗎?

+0

我想象你會得到最好的準確性,如果你使用imagenet的意思。但是,我認爲這不會產生很大的影響。如果你做了一個實驗並讓我們知道,那將是非常酷的! 當您有許多不同比例的不同特徵時,通常會使用0和1之間的比例縮放。對於圖像分類,這不是必需的,只要確保所有圖像具有相同的縮放比例,並且模型在相同比例的圖像上進行了訓練。 –

回答

0

在我誠實的看法中,人們誇大了圖像預處理的影響。唯一真正重要的是測試數據在價值尺度上與訓練數據相似。使用預歸一化數據集有一些理論上的好處,使用批量歸一化,但實際上它從來沒有太大的區別(2-4%的準確性)。

如果你有一個運行模型,並且你正試圖獲得最後幾個%的精度,而不必增加參數的數量,那麼我會建議對你的用例進行調整。

在我看來,沒有一種方法適用於每種用例,但一個好的起點是使用與ImageNet相同的預處理,因爲這些特徵與爲imagenet分類生成的特徵相似。

0
  1. 我會試試這兩個。減去你的意思是有道理的,因爲通常會試圖獲得平均值0.減去圖像淨平均值是有意義的,因爲你希望網絡作爲特徵提取器。如果你在特徵提取器中改變了一些東西,那可能是它根本不起作用。
  2. 就像平均值0一樣,它通常被認爲是具有固定範圍內的特徵或具有固定標準偏差的理想屬性。再次,我不能告訴你什麼更好,但你可以輕鬆地嘗試。我的猜測是沒有太大的差異。

最重要的是:確保您對訓練/測試/評估數據應用相同的預處理步驟。