caffe使用lenet5識別手寫數字
train資料夾下有10個類別0~9,每個類別500張圖,每張圖大小為28*28,影象深度為32,val資料夾下有10個類別0~9,每個類別100張圖,新建train.txt、val.txt標籤檔案,如圖
caffe中已經編寫好了lenet5模型,在路徑D:\caffe\caffe-windows\examples\mnist下,複製create_mnist.sh、lenet.prototxt、lenet_solver.prototxt、lenet_train_test.prototxt、train_lenet.sh檔案到自己的工作目錄下,從D:\caffe\caffe-windows\examples\imagenet中複製make_imagenet_mean.sh檔案到工作目錄下,修改相應檔案的路徑引數,參照
train_lenet.sh中為:
#!/usr/bin/env sh
set -e
.D:/caffe/caffe-windows/Build/x64/Release/caffe train \
--solver=D:/caffe/caffe-windows/data/work/lenet_solver.prototxt [email protected]
echo "done."
pause
如果安裝了git軟體,就可以直接雙擊執行,開始訓練模型。訓練完成後就會得到lenettt_iter_5000.caffemodel、lenettt_iter_5000.solverstate檔案,新建一個.bat檔案,內容為:
D:\caffe\caffe-windows\Build\x64\Release\caffe.exe test --model=D:\caffe\caffe-windows\data\work\lenet_train_test.prototxt --weights=D:\caffe\caffe-windows\data\work\lenettt_iter_5000.caffemodel
pause
執行後可以檢視訓練的模型結果,
可以看到accuracy=0.956,在上一篇pca+svm識別手寫數字中http://blog.csdn.net/baidu_30028771/article/details/71304559
接下來可以自己用畫筆寫幾個數字進行預測分類,新建test.bat,內容為:
D:\caffe\caffe-windows\Build\x64\Release\classification.exe D:\caffe\caffe-windows\data\work\lenet.prototxt D:\caffe\caffe-windows\data\work\lenettt_iter_2500.caffemodel D:\caffe\caffe-windows\data\work\imagenet_mean.binaryproto D:\caffe\caffe-windows\data\work\test.txt D:\caffe\caffe-windows\data\work\test\00.bmp
pause
可以準確的識別自己手寫的數字。
說明:在進行訓練的時候,我們用的黑底白字,在預測分類的時候,可以用黑底白字,也可以用白底黑字,但預測結果可能會不一樣,因此儘量和測試集保持一致。