CAFFE中訓練與使用階段網絡設計的不同_1


 

神經網絡中,我們通過最小化神經網絡來訓練網絡,所以在訓練時最后一層是損失函數層(LOSS),

在測試時我們通過准確率來評價該網絡的優劣,因此最后一層是准確率層(ACCURACY)。

但是當我們真正要使用訓練好的數據時,我們需要的是網絡給我們輸入結果,對於分類問題,我們需要獲得分類結果,如下右圖最后一層我們得到

的是概率,我們不需要訓練及測試階段的LOSS,ACCURACY層了。

下圖是能過$CAFFE_ROOT/python/draw_net.py繪制$CAFFE_ROOT/models/caffe_reference_caffnet/train_val.prototxt   , $CAFFE_ROOT/models/caffe_reference_caffnet/deploy.prototxt,分別代表訓練時與最后使用時的網絡結構。

 

我們一般將train與test放在同一個.prototxt中,需要在data層輸入數據的source,

而在使用時.prototxt只需要定義輸入圖片的大小通道數據參數即可,如下圖所示,分別是

$CAFFE_ROOT/models/caffe_reference_caffnet/train_val.prototxt   , $CAFFE_ROOT/models/caffe_reference_caffnet/deploy.prototxt的data層

訓練時, solver.prototxt中使用的是rain_val.prototxt

./build/tools/caffe/train -solver ./models/bvlc_reference_caffenet/solver.prototxt

 使用上面訓練的網絡提取特征,使用的網絡模型是deploy.prototxt

./build/tools/extract_features.bin models/bvlc_refrence_caffenet.caffemodel models/bvlc_refrence_caffenet/deploy.prototxt

 

 


免責聲明!

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



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