1. 程式人生 > >DL開源框架Caffe | 用訓練好的模型對資料進行預測

DL開源框架Caffe | 用訓練好的模型對資料進行預測

一句話理解Caffe:

  Caffe的萬丈高樓(Net)是按照我們設計的圖紙(prototxt),用很多磚塊(Blob)築成一層層(Layer)樓房,最後通過某些手段(Solver)進行簡裝修(Train)/精裝修(Finetune)實現的,另外每個樓層都可以被購買規己用,那麼就會有歸屬(Lable)。

一 Caffe識別問題上利用訓練好的模型預測

利用已有的模型可以對測試資料集進行預測,命令:

./build/tools/caffe.bin test \
> -model examples/mnist/lenet_train_test.prototxt \
> -weights examples/mnist/lenet_iter_10000.caffemodel \
> -iterations 100

命令列解析:

./build/tools/caffe.bin test \
//表示只做預測,不進行引數更新
> -model examples/mnist/lenet_train_test.prototxt \
//指定模型描述文字檔案
> -weights examples/mnist/lenet_iter_10000.caffemodel \
//指定模型預先訓練好的權值檔案
> -iterations 100
//指定測試迭代次數。參與測試樣例數目 = 迭代次數 * batch_size

輸出日誌:

這裡寫圖片描述

二 Caffe檢測問題上利用訓練好的模型預測

這裡主要針對py-faster-rcnn的目標檢測模型來講,訓練完成的model如何直接用來測試自己的影象呢?

1、訓練完成之後,將output/faster_rcnn_end_to_end/voc_2007_trainval中的最終模型拷貝到data/faster_rcnn_models(刪除以前生成類似的model)中。

2、修改/tools/demo.py為(最好拷貝一份修改):

(1) CLASSES =(‘background‘, ‘xxx’)(這裡是你的類別名)

(2) NETS ={‘vgg16’: (‘VGG16’, ‘VGG16_faster_rcnn_final.caffemodel’),
      ‘zf’:  (‘ZF’,’ZF_faster_rcnn_final.caffemodel’)} (這裡是你訓練完成的model)

(3) 在訓練集圖片中找一張出來放入py-faster-rcnn/data/demo資料夾中,命名為000001.jpg。

  im_names = ['000001.jpg'](需要測試的影象名稱)

(4) 根據你自己的訓練方式修改命令列輸入引數,預設的訓練方式為alt_opt的!

3、執行demo,即在py-faster-rcnn資料夾下終端輸入: ./tools/demo.py –net zf