1. 程式人生 > >【caffe-Windows】mnist例項編譯之model的生成

【caffe-Windows】mnist例項編譯之model的生成

其實這個和cifar的例項基本相同,只不過資料轉換的方法不一樣

【說明,此部落格按照我自己的路徑設定的相關操作,讀者如果自行選擇其他路徑,記得在bat和prototxt等檔案修改路徑】

第一步

為了避免部分人下載速度緩慢或者打不開網址,這個上傳了百度雲:連結:http://pan.baidu.com/s/1c2kHfgO 密碼:ffr7

下載以後放到如下路徑,並解壓,操作完畢的檔案如下,這個資料夾應該是在Linux下呼叫sh命令下載資料的地方,我們直接放到這裡面:

【這裡自己把解壓後的檔案重新命名一下,原始解壓後的檔案是"."而不是"-"】


第二步

資料格式的轉換,依舊是轉換為leveldb,不過和cifar的轉換方法不同


按照上圖,在對應路徑下新建一個bat檔案,內容如下:

set DATA=../../data/mnist
set TOOLS=../../Build/x64/Release

REM set BACKEND=lmdb
set BACKEND=leveldb

echo "Creating %BACKEND%..."

rd /s /q "mnist_train_%BACKEND%"
rd /s /q "mnist_test_%BACKEND%"

"%TOOLS%/convert_mnist_data.exe" %DATA%/train-images-idx3-ubyte %DATA%/train-labels-idx1-ubyte mnist_train_%BACKEND% --backend=%BACKEND%
"%TOOLS%/convert_mnist_data.exe" %DATA%/t10k-images-idx3-ubyte %DATA%/t10k-labels-idx1-ubyte mnist_test_%BACKEND% --backend=%BACKEND%

echo "Done."

pause

執行以後就會多出上圖的兩個資料夾。

【更新日誌2017-9-15】這一步很多人不會, 那就提供一個簡單點的轉換方法

轉換測試集:

..\..\Build\x64\Release\convert_mnist_data.exe train-images-idx3-ubyte train-labels-idx1-ubyte train_leveldb -backend=leveldb
pause
轉換訓練集:
..\..\Build\x64\Release\convert_mnist_data.exe train-images-idx3-ubyte train-labels-idx1-ubyte train_leveldb -backend=leveldb
pause

第三步

【注意】可以發現cifar在這裡還計算過均值
修改prototxt檔案,依舊是老地方,leveldb的路徑問題

第四步

【注意】如果你用的是CPU,記得修改lenet_solver.prototxt裡面最後一行為CPU

直接開始訓練了,同樣新建bat檔案,路徑和內容如下:



bat 的內容如下:

.\Build\x64\Release\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
pause  

第五步

得到結果模型

.