1. 程式人生 > >caffe學習筆記2-caffe命令列訓練與測試

caffe學習筆記2-caffe命令列訓練與測試

Train訓練(用cmdcaffe命令列) (solver.prototxt)
在使用cmdcaffe時,需要預設切換到Caffe_Root資料夾下,需要使用上述命令才可以使用tools下的caffe介面,因為caffe預設都需要從根目錄下面執行檔案。
1、訓練模型,以mnist為例子(solver.prototxt)
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt
      從中斷點的 snapshot 繼續訓練(solver.prototxt + .solverstate)
./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt -snapshot examples/mnist/lenet_iter_5000.solverstate

2、觀察各個階段的執行時間可以使用(train_test.prototxt)
./build/tools/caffe time -model examples/mnist/lenet_train_test.prototxt -iterations 10

3、使用已有模型提取特徵(caffemodel + train_val.prototxt + fc7 + num_mini_batches)
./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/feature_extraction/train_val.prototxt fc7 examples/temp_features 10 lmdb

  1) fc7表示提取全連線第七層特徵,conv5表示提取第五個卷積層的特徵, examples/temp_features表示存放結果的目錄(目錄不需要提前構建)

  2.)10:輸入的包的數量,我們test時的batchsize是50,這裡輸入10,表示會提取50*10=500張圖片的特徵

  3.)imageNet網路有很多層(data conv1 conv2 conv3 conv4 conv5 fc6 fc7 fc8 prob),我們可以選取任意一層;fc7是最後一層特徵,fc8輸出的就是softmax的輸出了,所以提取fc7層

  4.)lmdb:輸出的資料格式是lmdb,還可以是leveldb

-------------------------------------------------------------------------------------------------------

Test測試(用cmdcaffe命令列)(train_test.prototxt + caffemodel)
caffe test 命令通過在 test phase 中執行模型得到分數,並且用這分數表示網路輸出的最終結果。網路結構必須被適當定義,生成accuracy或loss作為其結果。測試過程中,終端會顯示每個 batch的得分,最後輸出全部 batch 得分的平均值。
# 對於網路結構檔案 lenet_train_test.prototxt所定義的網路
# 用 validation set 得到已訓練的 image_test 模型的分數
./build/tools/caffe test -model examples/image_test/train_val.prototxt -weights examples/image_test/caffenet_train/caffenet_train_iter_10000.caffemodel

Test分類單個輸入影象

   利用訓練好的模型,預測結果,5個輸入引數(train_val.prototxt + caffemodel + mean.binaryproto + synset_words.txt + cat.jpg)
   test指定影象,輸出結果
   sudo ./build/examples/cpp_classification/classification.bin \
   models/bvlc_reference_caffenet/deploy.prototxt \     
   models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
   data/ilsvrc12/imagenet_mean.binaryproto \
   data/ilsvrc12/synset_words.txt \
   examples/images/cat.jpg


測試ilsvrc12
./build/examples/cpp_classification/classification.bin models/bvlc_reference_caffenet/deploy.prototxt models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel data/ilsvrc12/imagenet_mean.binaryproto data/ilsvrc12/synset_words.txt examples/images/cat.jpg
---------- Prediction for examples/images/cat.jpg ----------
0.3134 - "n02123045 tabby, tabby cat"
0.2380 - "n02123159 tiger cat"
0.1235 - "n02124075 Egyptian cat"
0.1003 - "n02119022 red fox, Vulpes vulpes"
0.0715 - "n02127052 lynx, catamount"