執行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、訓練超引數,程式碼如下:(這是書上的例子,可以參考網址上的例子,在後面。不同之處:網址上的例子在此處新建一個資料夾儲存訓練的模型)
cd ./caffe
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt
部分訓練過程截圖如下:等待幾分鐘,訓練好後截圖如下,準確率99.08%:
4、執行例子(執行訓練命令)
定位到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檔案),再重新訓練超引數 (第3步./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt),最後再執行訓練:./examples/mnist/train_lenet.sh)。
最終訓練的模型儲存在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/model_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/model_mnist/lenet_iter_10000.caffemodel
相關文章
- Caffe 訓練mnist資料
- 字串自帶的String的正則例項字串
- Caffe相關C++介面例項C++
- Activiti的流程例項【ProcessInstance】與執行例項【Execution】
- java多執行緒例項Java執行緒
- dddsample一個可執行的例項
- NCF的Dapr應用例項的執行
- 小豹子帶你看原始碼:Java 執行緒池(二)例項化原始碼Java執行緒
- 唯一標識 Java 執行的例項Java
- Thread 併發執行例項thread
- 單節點執行ASM例項ASM
- java自帶的四種執行緒池Java執行緒
- javascript自帶的彈出輸出視窗程式碼例項JavaScript
- 用c#控制windows自帶計算器例項C#Windows
- Qt中的多執行緒與執行緒池淺析+例項QT執行緒
- 執行緒控制時間的隨筆(例項)執行緒
- 【RAC】rac中如何指定job的執行例項
- C#實現單例項執行C#單例
- JVM 位元組碼執行例項分析JVM
- 限制程式執行例項數 (轉)
- ORM 例項教程ORM
- Java例項教程Java
- python自帶pip怎麼執行Python
- jafka安裝配置和啟動一個自帶例項和手寫一個例項
- HTML5自帶表單驗證程式碼例項HTML
- 深度學習例項之基於mnist的手寫數字識別深度學習
- 刪除所有正在執行和退出的docker例項Docker
- 關於JSP 例項方法的執行緒安全JS執行緒
- 11G執行oracle自帶的檢查 checkOracle
- Linux中執行多個MySQL例項LinuxMySql
- 在Windows中執行多個MySQL例項WindowsMySql
- docker 執行elasticsearch單例項(elasticsearch:7.12.0)DockerElasticsearch單例
- crontab定期執行命令詳解,以及例項
- linux執行緒池簡單例項Linux執行緒單例
- Smarty例項教程(2)
- Smarty例項教程(5)
- window7下caffe安裝與mnist資料集測試
- Java 例項 - 如何檢視當前 Java 執行的版本?Java