您的位置:首页 > 其它

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

2018-01-19 14:28 399 查看
参参考参考文章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?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?0  
1  
2  
3  
4  
5  
6  
7  
8  
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,原因待查
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  深度学习
相关文章推荐