本文主要的環境是caffe+win8+vs2013+cuda7.0使用了gpu。Solution是在release版本下。具體的環境請看我轉載的happynear大神搭建的caffe框架。
一、數據集準備
下載並解壓,看到共有6個.bin文件,前面五個是訓練集,最後一個是測試集。
二、將數據集轉成leveldb格式
用vs2013打開項目工程。有一個project是convert_cifar_data。(若沒有,則可以在Solution新建一個cuda project,導入tools文件夾中的convert_cifar_data.cpp文件,配置環境即可)。
編譯這個project,之後會在../../examples/cifar10/文件夾下找到convert_cifar_data.exe。
新建兩個文件夾,分別命名爲input_folder,output_folder。input_folder中放入第一階段準備好的cifar10數據。output_folder爲轉換數據之後存儲位置。
同級目錄下新建一個批處理文件,後綴名.bat,輸入以下內容並保存。
convert_cifar_data.exe input_folder output_folders leveldb
pause
這裏將數據集轉成了leveldb格式。運行convet_cifar_data.bat文件,完成數據的轉換。
三、計算數據的均值文件
新建一個cuda project,命名爲compute_image_mean,導入tools文件夾中的compute_image_mean.cpp文件,配置環境。
編譯,輸出路徑爲爲../../bin\,所以,在bin 文件夾下找到生成的compute_image_mean.exe。
將第二階段生成的input_folder,output_folder拷貝過來。同級目錄下新建一個.bat文件。輸入以下內容並保存。
compute_image_mean.exe output_folders/cifar10_train_leveldb mean.binaryproto
pause
運行compute_image_mean.bat文件,生成了mean.binaryproto文件。這個文件即爲均值文件。
四、訓練cifar10數據集
在examples/cifar10/文件夾中,找到cifar10_quick_trian_test.prototxt。
修改裏面的mean_file和source的路徑。backend一律改爲LEVELDB。
只要是編譯好的caffe框架,在bin文件夾裏面都有一個caffe.exe。這是一個訓練數據集的可執行文件,在上級目錄下新建一個.bat,添加內容,保存並運行。
.\bin\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
看到在dos窗口已經開始訓練了,訓練迭代次數等參數均在cifar10_quick_solver.prototxt文件中。這裏採用了gpu訓練,迭代了4000次,最終的訓練精度爲0.7061。
在examples/cifar10/文件夾中,找到了訓練出來的模型cifar10_quick_iter_4000.caffemodel。