手把手教windows10+无Gpu+caffe下Mnist实例运行与测试自己的图片

前言:趁热打铁,完成了mnist实例的训练与测试,并用自己找的图片进行了测试。

本文需要的环境及数据

  1. 参照上篇博客配置
  2. 此例子所需数据集及所有需要修改生成的文件都放在云盘里,需要请自取 。链接:http://pan.baidu.com/s/1c16XXAS 密码:69c1

训练模型

  1. 数据集:程序本身不带测试数据,需要去下载,云盘里有。测试数据为leveldb格式。下载好后直接解压,得到两个文件夹(mnist-train-leveldb和mnist-test-leveldb),将这两个文件夹直接复制.\caffe-windows\examples\mnist .\examples\mnist\ 目录下。
  2. 修改配置文件。该目录下prototxt扩展名的都是配置文件。我们需要修改lenet_solver.prototxt,定位到最后一行:solver_mode: GPU,将GPU改为CPU。

    另外需要修改 lenet_train_test.prototxt文件的第14,16,31,33行
    这里写图片描述

    我这里需要双\,你们自己试一下看需不需要。

  3. 在D:\APK\caffe-windows\caffe-windows下运行(在你自己的caffe-windows目录下)。新建文本文档txt并重命名为train_mnist.bat,编辑
    .\Build\x64\Release\caffe.exe train--solver=examples
    \mnist\lenet_solver.prototxt
    pause

    前两行连在一行写~
    双击运行就可以了,结果如下:这里写图片描述

用标准数据集测试模型:

按上一步骤生成test_mnist.bat,前边写在一行。
.\Build\x64\Release\caffe.exe
test--model=examples/mnist/lenet_train_test.prototxt -weights=examples\mnist\lenet_iter_10000.caffemodel
pause

测试结果如下:
这里写图片描述

用自己的图片测试此模型:

参考风翼冰舟的博客http://blog.csdn.net/zb1165048017/article/details/52217772
1. 准备数据:可以从网上搜索,或者自己手写拍照。
这里写图片描述
找了一个0图片,首先用画图工具resize到28*28像素。然后用matlab或者python进行图像二值化处理。我这里用matlab了。

image=imread('c:\users\yiyi\Desktop\raw.png')
im=255-rgb2gray(image)
imwrite(uint8(im),'c:\users\yiyi\Desktop\0.jpg')

然后生成label.txt这里写图片描述
2.计算均值文件:在.\Build\x64\Release(或者Debug)目录下新建bat文件mnist_mean.bat,内容如下:

.\Build\x64\Debug\compute_image_mean.exe examples/mnist/mnist_train_leveldb examples/mnist/mean.binaryproto --backend=leveldb
pause

这里写图片描述
运行得到mean.binaryproto 。
3. 很重要:生成deploy.prototxt
这里参考了苏的专栏:http://blog.csdn.net/lanxuecc/article/details/52474476
我这里是将 lenet_train_test.prototxt复制了副本然后照着上边博文改了三处。
第一:/将原来训练与测试两层数据层data部分用下边代码替换/:

layer {
  name: "data"
  type: "Input"
  top: "data"
  input_param { shape: { dim: 1 dim: 1 dim: 28 dim: 28 } }
}

    总得来说,deploy.prototxt就是在lenet_train_test.prototxt的基础上稍作改动,input_param { shape: { dim: 1 dim: 1 dim: 28 dim: 28 } } 这四个dim参数分别是 :
(1)对待识别样本图片进行数据增广的数量,一个图片会变成10个,之后输入到网络进行识别。如果不进行数据增广,可以设置成1。
(2)图片的通道数,一般灰度图片为单通道,则值为1,如果为非灰度图3通道图片则为3。
(3)图片的高度,单位像素。
(4):图片的宽度,单位像素

第二:/删除了原有的测试模块的测试精度层/

第三:/*输出层的类型由SoftmaxWithLoss变成Softmax,训练是输出时是loss,应用时是prob。

layer {
  name: "prob"
  type: "Softmax"
  bottom: "ip2"
  top
}
```4. 
. 开始测试:
把要用到的数据都放在一个目录中,刚刚生成的1~3.
在D:\APK\caffe-windows\caffe-windows下运行(在你自己的caffe-windows目录下)。新建文本文档txt并重命名为mnist_class.bat,编辑:




<div class="se-preview-section-delimiter"></div>

.\Build\x64\Debug\classification.exe examples/mnist/deploy.prototxt examples\mnist\lenet_iter_10000.caffemodel examples/mnist/mean.binaryproto examples/mnist/label.txt examples/mnist/0.jpg 
pause
“`
点击运行,结果如下:
这里写图片描述

终于整理完了,呜呜呜,两篇博文整理了四个小时,歇会去啦,么么哒~

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值