咱們學習Caffe提供的簡單例程,目的是爲了讓初學者輕鬆上手,以examples/cifar10/爲例,主要用於小圖片的分類。網絡
1 cifar10數據集學習
60000張32*32彩色圖片,50000張訓練,10000張測試測試
下載cifar10數據集:http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gzui
將下載好並解壓好的數據存放於/data/cifar10/路徑spa
下載好的原始數據是BINARY(二進制)格式的,須要轉換成LMDB或LEVELDB格式才能被Caffe識別(本文以LEVELDB格式爲例)。3d
2 轉換格式日誌
咱們已經編譯好Caffe,可參考前面的博客Caffe環境搭建,只須要在根目錄D:\caffe-master下編寫一個腳本,完成後雙擊該腳本便可,我是將Caffe的源碼解壓在D盤的。blog
腳本文件以下所示:圖片
.\Build\x64\Release\convert_cifar_data.exe ./data/cifar10 ./examples/cifar10 leveldb
pauseci
.\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
運行結果,圖中紅色處爲準確率,咱們訓練測試主要看的也就是它: