2017-07-17 145 views
2

所以我正在學習如何使用Tensorflow來微調自定義數據集的Inception-v3模型。微調VS再培訓

我發現了兩個與此相關的教程。一個是關於「How to Retrain Inception's Final Layer for New Categories」,另一個是「 Train your own image classifier with Inception in TensorFlow with Fine tuning 」。

我在虛擬機上完成了第一個再培訓教程,只花了2-3個小時就完成了。對於相同的花朵數據集,我正在做一個GPU上的第二個微調教程,花了大約一整天的時間來完成培訓。

再培訓和微調有什麼區別?

我的印象是,他們都使用預先訓練的Inception v3模型,刪除舊的頂層,並在花卉照片上訓練一個新的模型。 但我的理解可能是錯誤的。

回答

5

通常在ML文獻我們稱之爲微調的過程:

  1. 保持訓練模型。模型=特徵提取器層+分類層
  2. 卸下分類層
  3. 附加新的分類層
  4. 重新訓練整個模型的端至端。

這允許從特徵提取層權重的良好配置開始,並因此在短時間內達到最佳值。

你可以考慮微調,就像開始一個新的列車的方法一樣,對於你的砝碼有一個很好的初始化方法(儘管你必須初始化新的分類層)。

當,相反,我們談論重新訓練模型的,我們通常所說的過程:

  1. 保持一個模型架構
  2. 改變最後分類層,以生產量要分類的課程
  3. 首尾相接訓練模型。

在這種情況下,您不是從上面的好起點開始,而是從解決方案空間中的隨機點開始。

這意味着您必須更長時間地訓練模型,因爲初始解決方案不如初始解決方案,即預訓練模型提供的。

-1

在重新訓練模型的情況下,所需時間比精細調整要少得多,而不是時間更長。