一:目的
用配置好的Windows版本Caffe(no GPU),訓練cifar10數據;
二:cifar10簡介
Cifar-10由60000張32*32的RGB彩色圖片構成,共10個分類。50000張訓練,10000張測試(交叉驗證)。這個數據集最大的特點在於將識別遷移到了普適物體,而且應用於多分類(姊妹數據集Cifar-100達到100類,ILSVRC比賽則是1000類)。
三:訓練過程
1. cifar-10數據集下載;
下載完成後的數據集並解壓後放在caffe-windows\examples\cifar10\input下,如圖所示
2. 對原始數據進行轉換;
(1) 新建caffe-windows\mybat\cifar10文件夾,並在其中新建cifar10_convention.bat,對數據格式進行轉換,批處理文件內容如下
(2) 轉換完成後,在caffe-windows\examples\cifar10\output文件下會生成cifar10_train_leveldb文件夾和cifar10_test_leveldb文件夾,裏面的內容爲..\..\Build\x64\Release\convert_cifar_data ..\..\examples\cifar10\input ..\..\examples\cifar10\output leveldb pause
3. 對轉換後的數據計算均值;
新建caffe-windows\mybat\cifar10\cifar10_mean.bat文件,編寫批處理命令如下
運行結束後,會在caffe-windows\examples\cifar10\test生成mean.binaryproto文件..\..\Build\x64\Release\compute_image_mean ..\..\examples\cifar10\output\cifar10_train_leveldb ..\..\examples\cifar10\test\mean.binaryproto --backend leveldb pause
4. 修改caffe-windows\examples\cifar10\cifar10_quick_train_test.prototxt爲如下
該文件是網絡結構的配置文件,主要修改的地方有三個,分別爲source,表示的是數據,選擇剛纔生成的數據即可。其次是batch_size,這部分可以根據自己計算機配置進行修改,第三個爲backend,由於剛纔生成的是LEVELDB格式,因此在這裏將其改爲LEVELDB
5. 修改caffe-windows\examples\mnist\lenet_solver.prototxt爲如下
修改相應的net,snapshot_prefix和solver_mode即可
6. 開始訓練
在caffe-windows\mybat\cifar文件夾新建cifar10_train.bat文件,用於數據的訓練,內容如下
雙擊即可運行,運行完成後,會在caffe-windows\examples\cifar10文件夾下生成cifar10_quick_iter_4000.caffemodel.h5和cifar10_quick_iter_4000.solverstate.h5文件..\..\Build\x64\Release\caffe.exe train -solver= ..\..\examples\cifar10\cifar10_quick_solver.prototxt pause
7.測試
(1) 在caffe-windows\examples\cifar10文件夾下新建synset_words.txt文件,表示標籤,裏面的值如下
(2) 用cifar-10數據集中的測試數據進行測試,在這裏,因爲cifar-10數據集中爲純數據,因此我在這裏對其進行了簡單的轉換,生成了100張cifar-10的圖像,將其放在caffe-windows\examples\cifar10\Pic文件夾下
如果有需要,鏈接爲鏈接:https://pan.baidu.com/s/1c3vIap6 密碼:65x5
(3) 在caffe-windows\mybat\cifar10文件夾下新建cifar10_test.bat,對數據進行測試,批處理文件內容如下
其中cifar10_quick_iter_4000.caffemodel.h5爲我們訓練生成的結果文件。..\..\Build\x64\Release\classification ..\..\examples\cifar10\cifar10_quick.prototxt ..\..\examples\cifar10\cifar10_quick_iter_4000.caffemodel.h5 ..\..\examples\cifar10\test\mean.binaryproto ..\..\examples\cifar10\synset_words.txt ..\..\examples\cifar10\Pic\Pic\12_truck.jpg pause
預測結果如下
預測的是一個卡車的圖像,預測結果也是一個卡車!
enjoy!
參考: