GoogLeNet模型的微調

weixin_30488085發表於2020-04-06

我從零開始訓練了GoogLeNet模型。 但它沒有給我帶來希望的結果。 
作為替代,我想對我的資料集中的GoogLeNet模型進行微調。 有誰知道我應該遵循什麼步驟?

採納答案:

假設你正在嘗試做影像分類。 這些應該是微調模型的步驟:

1.分類層

原始分類層"loss3/classifier"輸出1000個類的預測(它的mum_output設定為1000)。 您需要將其替換為具有適當num_output的新圖層。 替換分類層:

  1. 更改圖層的名稱(以便當您從caffemodel檔案讀取原始權重時,不會與此圖層的權重發生衝突)。
  2. num_output更改為您嘗試預測的正確數量的輸出類。
  3. 請注意,您需要更改所有分類圖層。 通常只有一個,但是GoogLeNet碰巧有三個: "loss1/classifier" , "loss2/classifier""loss3/classifier" 。

2.資料

您需要建立一個新的訓練資料集,其中包含您想要調整的新標籤。 例如,請參閱這篇文章 ,瞭解如何製作lmdb資料集。

3.你想要進行多少廣泛的調諧?

微調模型時,可以訓練所有模型的權重,或者選擇修正一些權重(通常是較低/較深層次的過濾器),並僅訓練最頂層的權重。 這個選擇取決於你,它通常取決於可用的訓練資料量(更多的例子你可以承受更多的權重,可以進行微調)。 
每個圖層(包含可訓練引數)都有param { lr_mult: XX } 。 這個係數決定了這些權重對SGD更新的敏感程度。 設定param { lr_mult: 0 }意味著你修改這個圖層的權重,並且在訓練過程中它們不會被改變。 
相應地編輯您的train_val.prototxt 。

4.執行咖啡

執行caffe train但提供caffemodel的重量作為初始重量:

~$ $CAFFE_ROOT/build/tools/caffe train -solver /path/to/solver.ptototxt -weights /path/to/orig_googlenet_weights.caffemodel 

  

更多答案請參考GoogLeNet模型的微調。版權歸stackoverflow所有,轉載請保留此連結 GoogLeNet模型的微調

 

更多關於caffe 的細節,關注徐其華大神的系列部落格,寫得非常詳細。

連結:http://www.cnblogs.com/denny402/tag/caffe/

轉載於:https://www.cnblogs.com/Allen-rg/p/9009225.html

相關文章