深度学习框架Caffe学习笔记(6)-测试自己的手写数字图片
在之前的实验中我们使用过
$ ./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学习笔记(6)-测试自己的手写数字图片相关推荐
- 02:一文全解:利用谷歌深度学习框架Tensorflow识别手写数字图片(初学者篇)
标签(空格分隔): 王小草Tensorflow笔记 笔记整理者:王小草 笔记整理时间2017年2月24日 Tensorflow官方英文文档地址:https://www.tensorflow.org/g ...
- 深度学习笔记:07神经网络之手写数字识别的经典实现
神经网络之手写数字识别的经典实现 上一节完成了简单神经网络代码的实现,下面我们将进行最终的实现:输入一张手写图片后,网络输出该图片对应的数字.由于网络需要用0-9一共十个数字中挑选出一个,所以我们的网 ...
- TF2.0深度学习实战(一):分类问题之手写数字识别
前言: 本专栏将分享从零开始搭建神经网络的学习过程,力争打造最易上手的小白教程.在这过程中,我将使用谷歌TensorFlow2 框架逐一复现经典的卷积神经网络:LeNet-5.AlexNet.VGG系 ...
- TF之CNN:利用sklearn(自带手写数字图片识别数据集)使用dropout解决学习中overfitting的问题+Tensorboard显示变化曲线
TF之CNN:利用sklearn(自带手写数字图片识别数据集)使用dropout解决学习中overfitting的问题+Tensorboard显示变化曲线 目录 输出结果 设计代码 输出结果 设计代码 ...
- 【Tensorflow学习三】神经网络搭建八股“六步法”编写手写数字识别训练模型
神经网络搭建八股"六步法"编写手写数字识别训练模型 Sequential用法 model.compile(optimizer=优化器,loss=损失函数,metrics=[&quo ...
- 深度卷积生成对抗网络DCGAN——生成手写数字图片
前言 本文使用深度卷积生成对抗网络(DCGAN)生成手写数字图片,代码使用Keras API与tf.GradientTape 编写的,其中tf.GradientTrape是训练模型时用到的. 本文用到 ...
- TF:利用是Softmax回归+GD算法实现MNIST手写数字图片识别(10000张图片测试得到的准确率为92%)
TF:利用是Softmax回归+GD算法实现MNIST手写数字图片识别(10000张图片测试得到的准确率为92%) 目录 设计思路 全部代码 设计思路 全部代码 #TF:利用是Softmax回归+GD ...
- 《人工智能实践:Tensorflow笔记》听课笔记22_6.1输入手写数字图片输出识别结果
附:课程链接 第六讲.全连接网络实践 6.1输入手写数字图片输出识别结果 由于个人使用Win7系统,并未完全按照课程所讲,以下记录的也基本是我的结合课程做的Windows系统+PyCharm操作.且本 ...
- Keras【Deep Learning With Python】keras框架下的MNIST数据集训练及自己手写数字照片的识别(分类神经网络)
文章目录 前言 mnist_model.py predict.py 前言 深度学习领域的"hello,world"可能就是这个超级出名的MNIST手写数字数据集的训练(想多了,要是 ...
最新文章
- 图解|什么是缺页错误Page Fault
- Ie6/ie7 不支持 JSON
- NYOJ 137 取石子(三)
- Golang的日志记录器
- Python issubclass 函数 - Python零基础入门教程 2021-07-14 09:24:43
- 树链剖分(入门学习)
- 在Vue项目中使用Echarts的一种方式
- 公司用的非标普通自动化用单片机还是plc_合格电气自动化工程师必备十大技能...
- 基于Springboot的物业管理系统_代码
- 【MySQL】Mcafee审计插件
- java地铁最短距离_地铁线路最短路径
- Java8新特性之一:Lambda表达式
- html页面证书过期,网页证书过期怎么办
- ubuntu 扩充交换空间
- 大数据平台技术——Scala+Hbase学习
- OmniPeek11安装 (驱动安装)
- 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身
- 如何把pdf文件转换成eps文件
- 黑客谈对一台BT主机的入侵过程
- 【转载】各个版本Microsoft Visual C++运行库下载