執行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
相關文章
- Activiti的流程例項【ProcessInstance】與執行例項【Execution】
- Thread 併發執行例項thread
- NCF的Dapr應用例項的執行
- 唯一標識 Java 執行的例項Java
- Qt中的多執行緒與執行緒池淺析+例項QT執行緒
- docker 執行elasticsearch單例項(elasticsearch:7.12.0)DockerElasticsearch單例
- Linux中執行多個MySQL例項LinuxMySql
- Java例項教程Java
- ORM 例項教程ORM
- 刪除所有正在執行和退出的docker例項Docker
- java自帶的四種執行緒池Java執行緒
- 在Windows中執行多個MySQL例項WindowsMySql
- Python程式和執行緒例項詳解Python執行緒
- python自帶pip怎麼執行Python
- Luat例項教程:adc
- 深度學習例項之基於mnist的手寫數字識別深度學習
- Java 例項 - 如何檢視當前 Java 執行的版本?Java
- 例項後臺執行訓練或任務
- 執行緒問題2(注意例項變數)執行緒變數
- 【爬蟲】Heritrix 3.2安裝和執行例項爬蟲
- python自動化指令碼例項100條-自動化運維基礎例項解析-Python批量登入到伺服器執行任務...Python指令碼運維伺服器
- Thinkphp帶表情的評論回覆例項PHP
- 深入 Laravel Nova 教程例項Laravel
- 使用Portainer集中管理多地域內網執行的Docker例項AI內網Docker
- Java之執行緒同步完成售票例項的6種方式Java執行緒
- css選擇器,帶例項CSS
- CSS 選擇器 - 帶例項CSS
- Ubuntu18.04執行mnist_cnn.py記錄UbuntuCNN
- 附例項!圖解React的生命週期及執行順序圖解React
- 請教,UI 自動化執行,併發用例執行解決方案UI
- Web Components 入門例項教程Web
- 【FLASH例項1000教程】(4)上
- expand 與 unexpand 命令例項教程
- 【多執行緒與高併發3】常用鎖例項執行緒
- Laravel 自帶命令: PHP artisan make:auth 執行流程LaravelPHP
- Maven例項講解教程,從零開始學Maven,帶你快速入門!Maven
- C#並行,多執行緒程式設計並行集合和PLINQ的例項講解並行執行緒程式設計
- 多執行緒併發鎖分類以及簡單例項執行緒單例