運行caffe自帶的mnist實例教程


運行caffe自帶的mnist實例教程

本文結合幾篇博文總結下來的,附上其中一篇原博文鏈接以供參考:http://blog.sina.com.cn/s/blog_168effc7e0102xjr1.html

 

1、先進入caffe文件目錄,(指令:cd ./caffe),再用data/mnist下的get_mnist.sh下載MNIST數據集,代碼如下:

sudo sh ./data/mnist/get_mnist.sh

打開下載目錄caffe/data/mnist查看如下圖:

 

2、轉換格式,代碼如下:

 ./examples/mnist/create_mnist.sh(若出錯:./examples/mnist/create_mnist.sh: 17: ./examples/mnist/create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found。則應先執行編譯:make all -j4,然后再執行命令:./examples/mnist/create_mnist.sh)

完成后在examples/mnist生成了兩個目錄:mnist_test_lmdb和mnist_train_lmdb:

 

每個目錄下有兩個文件:data.mdb和lock.mdb:

網絡結構定義在./examples/mnist/lenet_train_test.prototxt中。

訓練參數配置在./examples/mnist/lenet_solver.prototxt中。

如果電腦有GPU,則不需要修改配置文件;如果沒有GPU則需要修改lenet_solver.prototxt,在訓練之前需要修改

./examples/mnist/lenet_solver.prototxt最后的(solver_mode: GPU)修改為:solver_mode: CPU

這樣保證整個訓練過程在CPU上進行。

3、訓練超參數,有兩種方式:

(1)通過命令行執行訓練,代碼如下:(這是書上的例子,可以參考網址上的例子,在后面。不同之處:網址上的例子在此處新建一個文件夾保存訓練的模型)

cd ./caffe

./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

(2)將以上訓練的命令行代碼寫成訓練腳本並命名為train_lenet.sh,放到mnist目錄下。運行train_lenet.sh腳本進行訓練。

 cd caffe

./examples/mnist/train_lenet.sh(若出錯:Check failed: mdb_status == 0 (13 vs. 0) Permission denied  *** Check failure stack trace: ***則記到caffe目錄下,先清除:sudo make clean(刪掉了原有build文件)后,並重新編譯:sudo make all -j4(重新生成build文件),再重新訓練。

 部分訓練過程截圖如下:等待幾分鍾,訓練好后截圖如下,准確率99.08%:

  

 

最終訓練的模型保存在caffe/examples/mnist/lenet_iter_10000.caffemodel文件中,訓練狀態保存在caffe/examples/mnist/lenet_iter_10000.solverstate文件中。

5、用訓練好的模型對數據進行預測。

利用訓練好的Lenet-5模型權值文件(examples/mnist/lenet_iter_10000.caffemodel)可以對測試數據集(或外部測試集)進行預測,代碼如下:(注意caffe.bin ,prototxt ,caffemodel 等的路徑一定要根據自己的寫對:)

cd  ./caffe

./build/tools/caffe.bin test \  

-model=examples/mnist/lenet_train_test.prototxt \

-weights=examples/mnist/lenet_iter_10000.caffemodel \

-iterations=100 

(\表示回車,也可以不要它,直接將這四行代碼寫成一行代碼,注意caffe.bin ,prototxt ,caffemodel 等的路徑一定要根據自己的寫對:

./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_5000.caffemodel -iterations=100)

預測結果如下:

 

================================= 書上的例子到此結束 =======================

×××××××××××××××××××× 下面是參考網址上的例子 ××××××××××××××××××××××

網址上例子訓練模型部分,從前面第三部分開始。在此處創建了一個文件夾保存模型,這方法很好。新建文件夾代碼如下:

cd  ./caffe/examples/mnist

mkdir model_mnist

查看一下,輸入如下代碼

 ls

建好文件夾后需要修改caffe/examples/mnist/lenet_solver.prototxt 中的snapshot_prefix。

訓練網絡前先查看一下build/tools/caffe.bin 的用法。

訓練網絡的代碼如下:

cd  ./caffe

./examples/mnist/train_lenet.sh

訓練完成后,在examples/mnist/model_mnist下產生了4個文件。本例設置迭代5000次輸出一個模型和訓練狀態保存下來,故保存了迭代5000次和迭代10000次的訓練模型與訓練狀態。

測試迭代5000次的模型,代碼如下:

cd  ./caffe

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

運行caffe自帶的mnist實例教程測試迭代10000次的模型,代碼如下:

cd  ./caffe

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

 


免責聲明!

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



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