【caffe-windows】 caffe-master 之 mnist 超详细
本教程尽量详细,大多步骤都有图,如果运行出错,请先对照自己的文件是否和图上的一样,包括标点啊,空格啊,斜杠,反斜杠啊之类的小细节。
第一步: 官网下载mnist数据 http://yann.lecun.com/exdb/mnist/,共4个文件,解压放到caffe-master\data\mnist下
如图:
第二步: 转换成caffe需要的数据格式,此处转换为 LMDB(cifar是转换成 LEVELDB,可对比参考如何实现的) ,转换格式需要用到caffe里的项目convert_mnist_data ,这个convert_mnist_data.exe程序是放在caffe-master\Build\x64\Release下,如果是用 debug生成的解决方案,则是在caffe-master\Build\x64\Debug下,这个在写 bat文件的时候要注意更改相应的路径。
在caffe-master\data\mnist下新建一个文本文档,更改后缀为 .bat 在里面复制以下code:
..\..\Build\x64\Release\convert_mnist_data.exe ..\..\data\mnist\train-images.idx3-ubyte ..\..\data\mnist\train-labels.idx1-ubyte ..\..\examples\mnist\mnist_train_lmdb
echo.
..\..\Build\x64\Release\convert_mnist_data.exe ..\..\data\mnist\t10k-images.idx3-ubyte ..\..\data\mnist\t10k-labels.idx1-ubyte ..\..\examples\mnist\mnist_test_lmdb
pause
其实第一个路径就是 exe文件所在路径, 后面两个就是数据所在路径,最后一个是输出文件路径
保存后,双击运行
如图:
(PS:想转换成LEVELDB格式的话,只需要在.bat文件中把 mnist_train_lmdb改成mnist_train_leveldb ,有两处喔! )
第三步: 更改lenet_train_test.prototxt 和lenet_solver.prototxt文件,主要是改数据的路径以及数据的格式(默认LMDB,若在第二步转成了LEVELD的话,要改成LEVELDB )
首先 lenet_train_test.prototxt改的有
source: "../../examples/mnist/mnist_train_lmdb"
batch_size: 64
backend: LMDB
source:"../../examples/mnist/mnist_test_lmdb"
batch_size: 100
backend: LMDB
如图:
lenet_solver.prototxt改的有
net:"../../examples/mnist/lenet_train_test.prototxt"
snapshot_prefix:"../../examples/mnist/lenet"
如图:
若用CPU在最后一行改成 CPU
第四步: 开始训练,和之前我博客里cifar10一样,有两种方法,这里只介绍第一种方法,用批处理文件的方法(想知道第二种方法的请查看之前博客http://blog.csdn.net/u011995719/article/details/53998331)
在caffe-master\examples\mnist 下建立文本文档,后缀改为 .bat 复制以下code:
..\..\Build\x64\Release\caffe.exe train--solver=../../examples/mnist/lenet_solver.prototxt
Pause
如图:
保存,双击运行,弹出命令窗,等待训练结束,我的显卡是 GTX 960M ,只需要1分07秒就迭代了10000次,准确率 0.9915(用了一台i3的笔记本,cpu跑的,用了17分钟!)
如图:
PS: 总结两个遇到问题:
1. 转换数据时候要确定转换的是 LMDB还是LEVELDB,这个是在一开始转换的时候设置的,一旦设置,在后面的train_test.prototxt文件中一定要对应的改过来,切记,切记。
2.Debug 和 Release ,这个是在VS2013中选择的,具体有什么区别我不太清楚(百度了,说对使用问题不大),但是我们在调用例如 convert_mnist_data.exe 、compute_image_mean.exe等这些 应用程序时,要选择路径,一定要看清楚你生成的是在Debug文件夹(caffe-master\Build\x64\Debug)里还是在Release(caffe-master\Build\x64\Release)里,如果你生成的是在Debug里,而调用的时候是用路径:. Build\x64\Release 的话,就会出现如下错误:
当然,可以在VS2013中分别 选择 Debug和Release 进行生成,这样就不用担心第二个问题啦。
【caffe-windows】 caffe-master 之 mnist 超详细的更多相关文章
- Windows caffe 跑mnist实例
一. 装完caffe当然要来跑跑自带的demo,在examples文件夹下. 先来试试用于手写数字识别的mnist,在 examples/mnist/ 下有需要的代码文件,但是没有图像库. mn ...
- caffe windows学习:第一个测试程序
caffe windows编译成功后,就可以开始进行测试了.如果还没有编译成功的,请参考:caffe windows 学习第一步:编译和安装(vs2012+win 64) 一般第一个测试都是建议对手写 ...
- Caffe windows下安装攻略
Caffe 是一个高效的深度学习框架,鉴于不想折腾装个双系统,最近鼓捣了下用caffe源码在windows进行编译.非常感谢Yangqing Jia博士的caffe开源代码.Neil Z.Shao's ...
- Caffe系列2——Windows10制作LMDB数据详细过程(手把手教你制作LMDB)
Windows10制作LMDB详细教程 原创不易,转载请注明出处:https://www.cnblogs.com/xiaoboge/p/10678658.html 摘要: 当我们在使用Caffe做深度 ...
- caffe windows 学习第一步:编译和安装(vs2012+win 64)
没有GPU,没有linux, 只好装caffe的windows版本了. 我的系统是win10(64位),vs 2012版本,其它什么都没有装,因此会需要一切的依赖库. 其实操作系统只要是64位就行了, ...
- Caffe学习系列(一)Ubuntu16.04下搭建编译Caffe环境,并运行MNIST示例(仅CPU)
前言: 正文: 1.安装必要依赖包: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev l ...
- caffe windows编译
MicroSoft维护的caffe已经作为官方的caffe分支了,编译方式也改了,刚好最近重装了一次caffe windows, 记录一下里面的坑 https://github.com/BVLC/ca ...
- 【C#】C#中使用GDAL3(二):Windows下读写Shape文件及超详细解决中文乱码问题
转载请注明原文地址:https://www.cnblogs.com/litou/p/15035790.html 本文为<C#中使用GDAL3>的第二篇,总目录地址:https://www. ...
- 【caffe】Caffe的Python接口-官方教程-01-learning-Lenet-详细说明(含代码)
01-learning-Lenet, 主要讲的是 如何用python写一个Lenet,以及用来对手写体数据进行分类(Mnist).从此教程可以知道如何用python写prototxt,知道如何单步训练 ...
随机推荐
- Android外派(安卓外派) — 长年提供安卓开发工程师外派业务(可签合同)
北京动点飞扬长年提供安卓工程师外派业务. 平均技术情况如下: 1.2~3年以上Android平台开发经验2.熟练掌握java技术,熟悉面向对象编程设计3.熟悉Android应用开发框架及Activit ...
- bzoj1043 下落的圆盘
Description 有n个圆盘从天而降,后面落下的可以盖住前面的.求最后形成的封闭区域的周长.看下面这副图, 所有的红色线条的总长度即为所求. Input 第一行为1个整数n,N<=100 ...
- android学习笔记30——AndroidMainfest.xml
Manifest.xml文件的职责:指定APP的包名.声明四大组件, 以及启动方式.指定APP运行的进程名称.指定APP权限.指定最小API版本.指定需要连接的库. Manifest.xml的格式:& ...
- linux中cat、more、less命令区别详解
众所周知linux中命令cat.more.less均可用来查看文件内容,主要区别有:cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,它常与重定向符号配合使用,适用于文件内容少的情况:m ...
- 关于uboot中tftp上传内存数据到tftp服务器
uboot下的tftp下载功能是非常重要和常见的功能.但是偶尔有些特殊需求的人需要使用uboot的tftp具有上传功能.默认的uboot没有tftp上传功能,如果需要修改uboot代码.使用时键入第4 ...
- [Freescale]Freescale L3.14.52_1.1.0 yocto build
可参照:http://blog.csdn.net/wince_lover/article/details/51456745 1. Refer to <基于i.mx6处理器的Yocto项目及Lin ...
- 黄聪:PHP 防护XSS,SQL,代码执行,文件包含等多种高危漏洞
版本:v1.1更新时间:2013-05-25更新内容:优化性能功能说明: 可以有效防护XSS,sql注射,代码执行,文件包含等多种高危漏洞. 使用方法: 将waf.php传到要包含的文件的目录 在页面 ...
- 黄聪:get_posts 函数 | wordpress
get_posts 函数,简单的来讲是 get_post 的复数新形势,但因为是文章多篇提取,所以使用方法上却略有不同,支持众多参数选择需要提取的文章,在 CMS 主题中经常被用到,当然如果你对 Wo ...
- PUA
约会技巧 kino技巧 被拒绝的应对方法 (1)一般约会7个小时后,就能带女生回家 (2)点菜时多点一点,以回家放菜为名 (3)理由要文雅 (4)开酒店的理由 第一时间触碰测试 (1)第一次约会要第一 ...
- c++代码模板
c++代码模板 &代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int ...