深度学习--【2】将自己的手写体数字图片送入Lenet模型预测

参参考参考文章http://blog.csdn.net/zb1165048017/article/details/52217772

第一步

按照前面的model生成方法的前两步骤制作数据集,在examples/mnist得到两个文件夹mnist_test_lmdb和mnist_train_lmdb


第二步

计算均值文件:在examples/mnist目录下新建sh文件mnist_mean.sh,内容如下

[html]  view plain  copy
 print ?
  1. sudo ../../build/tools/compute_image_mean mnist_train_lmdb mean.binaryproto  
得到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:

[html]  view plain  copy
 print ?
  1. 0  
  2. 1  
  3. 2  
  4. 3  
  5. 4  
  6. 5  
  7. 6  
  8. 7  
  9. 8  
  10. 9  

调用classification.exe去识别某张图片,E:\CaffeDev-GPU\caffe-master目录新建mnist_class.sh

#!/bin/bash


CMD="sudo build/examples/cpp_classification/classification.bin examples/mnist/lenet.prototxt examples/mnist/lenet_iter_10000.caffemodel examples/mnist/mean.binaryproto examples/mnist/synset_words.txt"


for file in ./examples/mnist/binarybmp/*
do
if test -f $file
then
#echo $CMD $file
$CMD $file
fi
done

执行./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,原因待查

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值