深度学习框架Caffe学习笔记(6)-测试自己的手写数字图片
2016-11-08 17:53
561 查看
在之前的实验中我们使用过
命令来测试训练好的网络。这主要用于测试网络的准确率。
但如想用自己的手写数字,通过训练好的模型来识别这个数字,怎么做呢?
可以使用Caffe中build/examples/cpp_classification/classification.bin这个程序来实现。
接下来开始准备这几个文件
带两个参数:
第一个参数:examples/mnist/mnist_train_lmdb, 表示需要计算均值的数据,格式为lmdb的训练数据。
第二个参数:examples/mnist/mean.binaryproto, 计算出来的结果保存文件。
结果显示图片中的数字为0。
$ ./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这个程序来实现。
$ ./build/examples/cpp_classification/classification.bin Usage: ./build/examples/cpp_classification/classification.bin deploy.prototxt // 模型描述文件 network.caffemodel // 模型权值文件 mean.binaryproto // 图像均值文件 labels.txt // 图像类别标签信息 img.jpg // 输入待分类图像
接下来开始准备这几个文件
模型描述文件
将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学习笔记(2)-MNIST手写数字识别例程
- 【深度学习】笔记2_caffe自带的第一个例子,Mnist手写数字识别代码,过程,网络详解
- 一文全解:利用谷歌深度学习框架Tensorflow识别手写数字图片(初学者篇)
- 【深度学习】笔记3_caffe自带的第一个例子,Mnist手写数字识别所使用的LeNet网络模型的详细解释
- 02:一文全解:利用谷歌深度学习框架Tensorflow识别手写数字图片(初学者篇)
- CAFFE学习笔记(二):训练和测试自己的图片
- 深度学习框架Caffe学习笔记(4)-MNIST数据集转换成可视化图片
- 【深度学习】笔记6:使用caffe中的CIFAR10网络模型和自己的图片数据训练自己的模型(步骤详解)
- Windows Caffe 学习笔记(四)搭建自己的网络,训练和测试MNIST手写字体库
- 从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试
- Caffe学习系列(12):训练和测试自己的图片
- 深度学习框架Caffe学习笔记(7)-cifar10例程
- Caffe学习系列(12):训练和测试自己的图片
- 入门深度学习mxnet框架——运行mnist手写数字例子
- 深度学习框架Caffe学习笔记(1)-Caffe环境搭建
- caffe学习笔记4-- 手写数字mnist训练过程
- 【神经网络与深度学习】在Windows8.1上用VS2013编译Caffe并训练和分类自己的图片
- Caffe学习系列(12):训练和测试自己的图片
- 深度学习caffe应用笔记--如何将图片转换为lmdb格式
- 深度学习文章5:使用caffe对自己的图像数据进行训练并测试