標籤:還需要 nbsp quick 檔案名稱 margin build 運行 img 參數
我們學習Caffe提供的簡單常式,目的是為了讓初學者輕鬆上手,以examples/cifar10/為例,主要用於小圖片的分類。
1 cifar10資料集
60000張32*32彩色圖片,50000張訓練,10000張測試
下載cifar10資料集:http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
將下載好並解壓好的資料存放於/data/cifar10/路徑
下載好的未經處理資料是BINARY(二進位)格式的,需要轉換成LMDB或LEVELDB格式才能被Caffe識別(本文以LEVELDB格式為例)。
2 轉換格式
我們已經編譯好Caffe,可參考前面的部落格Caffe環境搭建,只需要在根目錄D:\caffe-master下編寫一個指令碼,完成後雙擊該指令碼即可,我是將Caffe的源碼解壓在D盤的。
指令檔如下所示:
.\Build\x64\Release\convert_cifar_data.exe ./data/cifar10 ./examples/cifar10 leveldb
pause
.\Build\x64\Release\convert_cifar_data.exe
./data/cifar10 表示輸入資料檔案路徑
./examples/cifar10 表示輸出資料檔案路徑
leveldb 表示資料格式,你也可以嘗試產生lmdb格式
提示:如何編寫bat指令檔?
答:其實就是建立一個文字檔,然後將尾碼名改寫成bat就可以。
關於指令碼裡面的Release模式,有人肯定會問,我用Debug模式不可以嗎?
答:也可以。但因為在Debug模式下會出現一系列的問題,我個人建議還是在Release模式下產生Caffe。
3 映像資料均值
我們已經編譯好Caffe,只需要在目錄D:\caffe-master下編寫一個指令碼就好,完成後雙擊指令碼。
指令碼如下所示:
.\Build\x64\Release\compute_image_mean.exe -backend=leveldb ./examples/cifar10/cifar10_train_leveldb mean.binaryproto
pause
.\Build\x64\Release\compute_image_mean.exe 表示映像資料進行初始化處理,需要compute_image_mean.exe可執行檔
-backend=leveldb 表示資料格式,如果不添加這句話的,預設轉化為lmdb
./examples/cifar10/cifar10_train_leveldb 表示剛才產生的訓練資料集的路徑,而不是val驗證資料集的路徑
mean.binaryproto 表示輸出均值檔案名稱,尾碼名為binaryproto。這裡預設儲存在當前路徑下,也就是在D:\caffe-master。
4 配置網路檔案
該版本的網路設定檔有很多,我這裡使用/examples/cifar10/cifar10_quick_train_test.prototxt。開啟之後修改訓練資料和驗證資料以及均值檔案的路徑,如所示,紅色部分為修改過後的:
由於我是CPU模式的,所以還需要修改一下/examples/cifar10/cifar10_quick_solver.prototx檔案裡面的模式,如所示,紅色圓圈為修改過的,原先為GPU模式。
5 訓練日誌
由於使用了cifar10_quick_train_test.prototxt,對應的在模型訓練設定檔案上我們使用cifar10_quick_solver.prototxt,其實不需要修改內容,當然你也可以自己指定一些參數。
我們已經編譯好Caffe,只需要在根目錄D:\caffe-master下編寫一個指令碼,完成後雙擊該指令碼即可。
.\Build\x64\Release\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
要是想進行驗證的話,可以修改命令為:
.\Build\x64\Release\caffe.exe test --model=examples/cifar10/cifar10_quick_train_test.prototxt
pause
運行結果,圖中紅色處為準確率,我們訓練測試主要看的也就是它:
Caffe for Windows 訓練cifar10