深度学习框架Caffe学习笔记(6)-测试自己的手写数字图片
在之前的實驗中我們使用過
$ ./build/tools/caffe.bin test \
-model examples/mnist/lenet_train_test.prototxt \
-weights examples/mnist/lenet_iter_10000.caffemodel \
-iterations 100
命令來測試訓練好的網絡。這主要用于測試網絡的準確率。
但如想用自己的手寫數字,通過訓練好的模型來識別這個數字,怎么做呢?
可以使用Caffe中build/examples/cpp_classification/classification.bin這個程序來實現。
接下來開始準備這幾個文件
模型描述文件
將lenet_train_test.prototxt復制一份修改如下
// 將訓練和測試用的mnist層刪除,添加以下層 name: "LeNet" layer {name: "data"type: "Input"top: "data"input_param { shape: { dim: 1 dim: 1 dim: 28 dim: 28 } } } ...... // 中間的模型不改動,省略 ...... // 將accuracy層和loss層刪除,添加以下層 layer {name: "prob"type: "Softmax"bottom: "ip2"top: "prob" }權值描述文件
訓練好網絡后examples/mnist/目錄下就會會有lenet_iter_10000.caffemodel這個文件。
圖像均值文件
Caffe框架為我們提供了一個計算均值的文件compute_image_mean.cpp,放在caffe根目錄下的tools文件夾里面。編譯后的可執行體放在 build/tools/ 下面,我們直接調用就可以了
$ sudo build/tools/compute_image_mean examples/mnist/mnist_train_lmdb examples/mnist/mean.binaryproto帶兩個參數:
第一個參數:examples/mnist/mnist_train_lmdb, 表示需要計算均值的數據,格式為lmdb的訓練數據。
第二個參數:examples/mnist/mean.binaryproto, 計算出來的結果保存文件。
標簽文件
新建label.txt,每行一個數字,0到9。
0 1 2 3 4 5 6 7 8 9輸入待分類圖像
這個自己拿畫圖工具畫一個就好。由于訓練集中的數據都是黑底白字的,所以如果自己寫是是白底黑字的圖片可能識別不準確。
開始測試
$ ./build/examples/cpp_classification/classification.bin \ examples/mnist/classificat_net.prototxt \ examples/mnist/lenet_iter_10000.caffemodel \ examples/mnist/mean.binaryproto examples/mnist/label.txt \ examples/mnist/0.png ---------- Prediction for examples/mnist/0.png ---------- 1.0000 - "0" 0.0000 - "1" 0.0000 - "3" 0.0000 - "4" 0.0000 - "2"結果顯示圖片中的數字為0。
總結
以上是生活随笔為你收集整理的深度学习框架Caffe学习笔记(6)-测试自己的手写数字图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于51单片机的花样流水灯设计
- 下一篇: 编程的智慧总结笔记