ubuntu 下caffe框架內一個訓練流程小記

訓練伊始:獲取數據集

        所需要執行的文件是 get_<數據集名>.sh       但是該文件的執行需要在指定的文件夾下面,而非是caffe根目錄。故而在執行之前需要先cd切換到指定的文件夾

例如:當你需要執行 get_mnist.sh 時首先要做:

$ cd       #直接回到home目錄     
$ cd caffe/data/mnist   #到caffe目錄下找data文件夾然後進入mnist文件夾
$ ./get_mnist.sh      #我的電腦跑CPU,不知爲何不能用sh get_mnist.sh 命令來執行
得到之後需要再執行creat_mnist.sh 但是此時必須要在caffe根目錄下執行而不是先進入mnist文件夾後執行

$ cd ~/caffe   #回到caffe根目錄下 當前在mnist文件夾下不能用cd caffe 直接回到上層次的caffe文件夾 
$ ./examples/mnist/create_mnist.sh 
執行完以上兩步之後再需要更改參數文件修改爲CPU做訓練

因爲要執行文件train_lenet.sh 可手動打開看看需要修改的.prototxt 文件有哪些

其中提到的路徑爲examples/mnist/lenet_solver.prototxt

故而打開lenet_solver.prototxt 進行CPU_ONLY的修改

找到文件 lenet_solver.prototxt 用gedit打開後將最後一行solver_mode:GPU 修改爲  solver_mode:CPU

lenet 是模型的名稱,而solver基本上存放着可調參數。其實後綴爲prototxt很多都是用來修改配置的

該文件路徑: caffe/example/<數據集名>

可以直接用文件管理器找到文件,也可以用終端執行命令打開

$ sudo gedit caffe/examples/mnist/lenet_solver.prototxt
# 假設當前的目錄爲home,TIP:在當前目錄下取下個文件夾時前面不能加/;也就是gedit caffe 不可寫爲gedit /caffe
修改完之後回到caffe目錄下開始訓練:

$ cd ~/caffe       #回到caffe目錄下
$ ./examples/mnist/train_lenet.sh 
最終訓練完的模型存儲:

examples/mnist/lenet_iter_10000.caffemodel

./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel


訓練結束後開始測試:

$ ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel
同理 如果是cifar10數據庫

$ cd ~/caffe/data/cifar10
$ ./get_cifar10.sh         #在cifar10目錄下執行,未嘗試過直接在caffe目錄下執行
$ cd ~/caffe
$ ./examples/cifar10/create_cifar10.sh    #不到caffe目錄下執行會報錯
打開train_quick.sh

發現提到兩個.prototxt 文件,故而將兩個都做CPU_ONLY的修改

但是,留心發現不單單有train_quick.sh 還有train_full.sh     train_full_sigmoid.sh    train_full_sigmoid_bn.sh 等訓練文件

根據自己所需要執行的訓練文件來修改所涉及的.prototxt文件中的CPU_ONLY

訓練模型:

$ ./examples/cifar10/train_quick.sh

測試:參考以上的測試輸入命令,下面貼出網絡查詢到的自己定義網絡所輸入的命令供之後分析

python python/classify.py 
--model_def examples/cifar10/cifar10_quick.prototxt 
--pretrained_model examples/cifar10/cifar10_quick_iter_4000.caffemodel.h5 
--center_only  examples/images/cat.jpg foo  
其中出現的model_def,pretrained_model,center_only ,這些參數哪些可選?哪些必選?

較之mnist的test命令

./build/tools/caffe.bin test 
-model=examples/mnist/lenet_train_test.prototxt 
-weights=examples/mnist/lenet_iter_10000.caffemodel
有model,weights這兩個參數,已知的是GPU=0,這個是可選參數,選擇零號GPU






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章