参参考参考文章http://blog.csdn.net/zb1165048017/article/details/52217772
第一步
按照前面的model生成方法的前两步骤制作数据集,在examples/mnist得到两个文件夹mnist_test_lmdb和mnist_train_lmdb
第二步
计算均值文件:在examples/mnist目录下新建sh文件mnist_mean.sh,内容如下
得到mean.binaryproto
第三步
执行命令:
$ sudo cp lenet_train_test.prototxt lenet_train_test1.prototxt
$ sudo cp lenet_solver.prototxt lenet_solver1.prototxt
将lenet_train_test.prototxt和lenet_solver.prototxt复制出来一份,
修改lenet_train_test1.prototxt的前两层,就是在原来的基础上把均值文件加进去。
name: "LeNet"
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TRAIN
}
transform_param {
mean_file:"examples/mnist/mean.binaryproto" #添加的均值文件
scale:0.00390625
}
data_param {
source: "examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
}
}
layer {
name: "mnist"
type: "Data"
top: "data"
top: "label"
include {
phase: TEST
}
transform_param {
mean_file:"examples/mnist/mean.binaryproto" #添加的均值文件
scale: 0.00390625
}
data_param {
source: "examples/mnist/mnist_test_lmdb"
batch_size: 100
backend: LMDB
}
}
同时还要修改lenet_train_test1.prototxt
# The train/test net protocol buffer definition
net: "examples/mnist/lenet_train_test1.prototxt" #修改的部分
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.01
momentum: 0.9
weight_decay: 0.0005
# The learning rate policy
lr_policy: "inv"
gamma: 0.0001
power: 0.75
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 10000
# snapshot intermediate results
snapshot: 5000
snapshot_prefix: "examples/mnist/lenet"
# solver mode: CPU or GPU
solver_mode: CPU
第四步
把转换好的二值图像拷贝到~/caffe/examples/mnist/binarybmp/
在~/caffe/examples/mnist/下建立标签文件synset_words.txt:
调用classification.exe去识别某张图片,E:\CaffeDev-GPU\caffe-master目录新建mnist_class.sh
执行./mnist_class.sh
运行结果
---------- Prediction for ./examples/mnist/binarybmp/0.bmp ----------
1.0000 - "0"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/1.bmp ----------
1.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/2.bmp ----------
1.0000 - "2"
0.0000 - "0"
0.0000 - "3"
0.0000 - "1"
0.0000 - "4"
---------- Prediction for ./examples/mnist/binarybmp/3.bmp ----------
1.0000 - "3"
0.0000 - "4"
0.0000 - "1"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/4.bmp ----------
1.0000 - "4"
0.0000 - "1"
0.0000 - "3"
0.0000 - "0"
0.0000 - "2"
---------- Prediction for ./examples/mnist/binarybmp/5.bmp ----------
1.0000 - "5"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/66.bmp ----------
1.0000 - "8"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/7.bmp ----------
1.0000 - "7"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/8.bmp ----------
1.0000 - "8"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
---------- Prediction for ./examples/mnist/binarybmp/9.bmp ----------
1.0000 - "9"
0.0000 - "1"
0.0000 - "3"
0.0000 - "4"
0.0000 - "0"
红色字体的为错误预测,试了好几次,修改自己手写的6的出来的预测结果都是8,原因待查