运行caffe自带的mnist实例教程
运行caffe自带的mnist实例教程
本文结合几篇博文总结下来的,附上其中一篇原博文链接以供参考:http://blog.sina.com.cn/s/blog_168effc7e0102xjr1.html
1、先进入caffe文件目录,(指令:cd ./caffe),再用data/mnist下的get_mnist.sh下載MNIST数据集,代码如下:
sudo sh ./data/mnist/get_mnist.sh
打开下载目录caffe/data/mnist查看如下图:
2、转换格式,代码如下:
./examples/mnist/create_mnist.sh(若出错:./examples/mnist/create_mnist.sh: 17: ./examples/mnist/create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found。则应先执行编译:make all -j4,然后再执行命令:./examples/mnist/create_mnist.sh)
完成后在examples/mnist生成了两个目录:mnist_test_lmdb和mnist_train_lmdb:
每个目录下有两个文件:data.mdb和lock.mdb:
网络结构定义在./examples/mnist/lenet_train_test.prototxt中。
训练参数配置在./examples/mnist/lenet_solver.prototxt中。
如果电脑有GPU,则不需要修改配置文件;如果没有GPU则需要修改lenet_solver.prototxt,在训练之前需要修改
./examples/mnist/lenet_solver.prototxt最后的(solver_mode: GPU)修改为:solver_mode: CPU
这样保证整个训练过程在CPU上进行。
3、训练超参数,有两种方式:
(1)通过命令行执行训练,代码如下:(这是书上的例子,可以参考网址上的例子,在后面。不同之处:网址上的例子在此处新建一个文件夹保存训练的模型)
cd ./caffe
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt
(2)将以上训练的命令行代码写成训练脚本并命名为train_lenet.sh,放到mnist目录下。运行train_lenet.sh脚本进行训练。
cd caffe
./examples/mnist/train_lenet.sh(若出错:Check failed: mdb_status == 0 (13 vs. 0) Permission denied *** Check failure stack trace: ***则记到caffe目录下,先清除:sudo make clean(删掉了原有build文件)后,并重新编译:sudo make all -j4(重新生成build文件),再重新训练。
部分训练过程截图如下:等待几分钟,训练好后截图如下,准确率99.08%:
最终训练的模型保存在caffe/examples/mnist/lenet_iter_10000.caffemodel文件中,训练状态保存在caffe/examples/mnist/lenet_iter_10000.solverstate文件中。
5、用训练好的模型对数据进行预测。
利用训练好的Lenet-5模型权值文件(examples/mnist/lenet_iter_10000.caffemodel)可以对测试数据集(或外部测试集)进行预测,代码如下:(注意caffe.bin ,prototxt ,caffemodel 等的路径一定要根据自己的写对:)
cd ./caffe
./build/tools/caffe.bin test \
-model=examples/mnist/lenet_train_test.prototxt \
-weights=examples/mnist/lenet_iter_10000.caffemodel \
-iterations=100
(\表示回车,也可以不要它,直接将这四行代码写成一行代码,注意caffe.bin ,prototxt ,caffemodel 等的路径一定要根据自己的写对:
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_5000.caffemodel -iterations=100)
预测结果如下:
================================= 书上的例子到此结束 =======================
×××××××××××××××××××× 下面是参考网址上的例子 ××××××××××××××××××××××
网址上例子训练模型部分,从前面第三部分开始。在此处创建了一个文件夹保存模型,这方法很好。新建文件夹代码如下:
cd ./caffe/examples/mnist
mkdir model_mnist
查看一下,输入如下代码
ls
建好文件夹后需要修改caffe/examples/mnist/lenet_solver.prototxt 中的snapshot_prefix。
训练网络前先查看一下build/tools/caffe.bin 的用法。
训练网络的代码如下:
cd ./caffe
./examples/mnist/train_lenet.sh
训练完成后,在examples/mnist/model_mnist下产生了4个文件。本例设置迭代5000次输出一个模型和训练状态保存下来,故保存了迭代5000次和迭代10000次的训练模型与训练状态。
测试迭代5000次的模型,代码如下:
cd ./caffe
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_5000.caffemodel
运行caffe自带的mnist实例教程测试迭代10000次的模型,代码如下:
cd ./caffe
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel
运行caffe自带的mnist实例教程的更多相关文章
- Caffe学习系列(9):运行caffe自带的两个简单例子
为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意: ...
- 转 Caffe学习系列(9):运行caffe自带的两个简单例子
为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意: ...
- 【转载】Caffe学习:运行caffe自带的两个简单例子
原文:http://www.cnblogs.com/denny402/p/5075490.html 为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data ...
- Caffe学习使用__运行caffe自带的两个简单例子
为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意: ...
- caffe mnist实例 --lenet_train_test.prototxt 网络配置详解
1.mnist实例 ##1.数据下载 获得mnist的数据包,在caffe根目录下执行./data/mnist/get_mnist.sh脚本. get_mnist.sh脚本先下载样本库并进行解压缩,得 ...
- Silverlight实例教程 – Datagrid,Dataform数据验证和ValidationSummary(转载)
Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...
- 源于《Unity官方实例教程 “Space Shooter”》思路分析及相应扩展
教程来源于:Unity官方实例教程 Space Shooter(一)-(五) http://www.jianshu.com/p/8cc3a2109d3b 一.经验总结 教程中步骤清晰,并且 ...
- Unity-2017.2官方实例教程Roll-a-ball(二)
声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/97b630a23234 上一节Unity-2017.2官方实例教程Roll ...
- Unity-2017.2官方实例教程Roll-a-ball(一)
声明: 本文系转载,由于Unity版本不同,文中有一些小的改动,原文地址:http://www.jianshu.com/p/6e4b0435e30e Unity-2017.2官方实例教程Roll-a- ...
随机推荐
- Python3环境搭建
Python3环境搭建 Windows系统下安装Python3 Python3 下载 Python3 最新源码,二进制文档,新闻资讯等可以在 Python 的官网查看到: Python 官网:ht ...
- Win10提示“因为文件共享不安全,所以你不能连接到文件共享”如何处理
在使用Windows10 1803版本系统连接CentOS6.5下搭建的Samba服务时,发现打开共享文件会遇到以下提示: 其实,该问题是Win10版本不兼容导致的.微软官方说明:https://go ...
- 获取访问者IP
在一般情况下使用Request.getRemoteAddr()即可,但是经过nginx等反向代理软件后,这个方法会失效. * 本方法先从Header中获取X-Real-IP,如果不存在再从X- ...
- 前端开发需要掌握的SEO的知识点
SEO 工作的目的 seo 的工作目的是为了让网站更利于让各大搜索引擎抓取和收录,增加产品的曝光率. SEO 注意事项 1. 网站 TDK 标签的设置.title,description,keywor ...
- js 回文判断
方法一: 1.toLowerCase() //统一小写. 2.split(" ").reverse().join(" "); //字符串翻转. func ...
- ubuntu1604 golang环境
copy来的,这里记录一下 1. 升级系统: sudo apt-get upgrade 2. 安装docker 下载docker-ce: https://download.docker.com/lin ...
- 【PHP函数】PHP 去掉字符串中的转义符号
PHP字符串中的转义符号 string stripslashes ( string $str ) //去掉字符串中的反斜线字符.若是连续二个反斜线,则去掉一个,留下一个.若只有一个反斜线,就直接去掉.
- 448. Find All Numbers Disappeared in an Array&&645. Set Mismatch
题目: 448. Find All Numbers Disappeared in an Array Given an array of integers where 1 ≤ a[i] ≤ n (n = ...
- Word中如何删除目录页的页码
---恢复内容开始--- word中插入目录之后想要为每页添加页码,如果我们直接添加页码的话会出现目录是第一页,正文部分的页码是从2开始而不是1,用下面的方法就可以解决 首先让文档中的所有符号可见 第 ...
- OSS文件上传到阿里云
<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"></script&g ...