CAFFE: Fine-tuning for style recognition


假設現在有一個20類的分類問題,那么最簡單的方法就是重新訓練一個基於該20類的分類問題。但如果我們已經有一個1000類的模型呢?

我們其實不必大費周張的重新訓練一個20類的模型,其實兩個模型只有最后一層不一樣,即一個的輸出為1000維,另一個為20維。那么我們完全

可以將1000類模型除最后一層的其余層拿過來使用,然后再使用現有數據對原模型執行fine-tuning操作,這樣可以大大提高訓練速度。

 ./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0

如果使用cpu模式,那么最后的-gpu省略。

在套用模型的時候會將層名相同的參數值作為初始值賦值給相應層的參數,那么就要求層名相同的的層的定義要完全一致,假設輸出不一致,那么賦值失敗。如果在原模型中沒有找到相應的層,那么該層的參數初始值與普通訓練無異。

為了簡單起見,作者將CAFFE_ROOT/examples/mnist/lenet_train_test.prototxt 去掉fc2層得到一個新的模型 lenet_train_test_new.prototxt

然后將對原模型進行find-tuning:

./build/tools/caffe train -solver examples/mnist/lenet_train_test_new.prototxt -weights examples/mnist/lenet.caffemodel

雖沒有具體測訓練時間,但訓練確實是在瞬間完成的!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM