【caffe-Windows】cifar实例编译之model的生成
参考:<span style="font-family: Arial, Helvetica, sans-serif;">http://blog.csdn.net/chengzhongxuyou/article/details/50715455</span>
准备工作
按照之前的教程,成功生成过caffe,并且编译整个caffe.sln项目工程,在\caffe-master\Build\x64\Debug生成了一堆exe文件,后面会使用到除了caffe.exe的另外一个exe
【PS】很多VS安装过程中出现问题的,比如XX加载失败,XX未找到等,请自行寻找问题,很可能是原来的VS没卸载干净,或者VS版本缺少一些文件等导致。正常情况下,第一次编译只有libcaffe.lib显示失败,不会出现其它error
第一步
下载cifar的数据集
官网地址:http://www.cs.toronto.edu/~kriz/cifar.html
我的百度云地址:二进制数据文件链接:http://pan.baidu.com/s/1hrRApwC 密码:1dxy
.mat格式连接:链接:http://pan.baidu.com/s/1hr6B7Xa密码:f343
多一句嘴,这个数据集是彩色图片,也即具有RGB三通道,数据存储方式是一行为一张图片,包含3*32*32=3072个像素属性,具体多少张图片,有兴趣的可以去官网看看,或者看看数据集的存储格式:样本数(图片数)*3072
【与训练model无关】下面代码是用matlab写的,用于显示其中一个样本,当然你可以用reshape函数,前面我介绍过这个函数
image=zeros(32,32,3);
count=0;
for i=1:3for j=1:32for k=1:32count=count+1;image(j,k,i)=data(1000,count);endend
end
imshow(uint8(image))
第二步
下载完毕以后,解压得到数据,请核对是否与下图一样
按照下列路径,在自己的caffe目录下建立input_folder文件夹,并拷贝相应数据集
第三步
在input_folder的上一级目录,也就是Debug目录建立一个bat文件(名称随意,我用的是convert.bat),用于转换数据集格式,内容如下
convert_cifar_data.exe input_folder output_folders leveldb
pause
【PS】此处的exe就是在编译caffe.sln时候生成的,如果没有,请在VS中修改生成模式为DEBUG,而非release
【PS】caffe-windows是caffe官方提供的caffe,与caffe-master差不多,我这里为了从头演示,没有在master里面操作,无视之即可
运行此bat文件,会生成一个文件夹output_folders,里面有两个文件夹,请核对路径以及文件数目
第四步
计算均值,新建另一个bat文件(本文采用mean.bat),如下图所示,请核对路径
compute_image_mean.exe output_folders/cifar10_train_leveldb mean.binaryprotopause
双击此bat文件,不出意外会出现下面问题:
解决方法有两种
第一种:打开caffe.sln,修改compute_image_mean.cpp
重新生成一下,得到新的计算均值的exe文件【电脑编译中。。。等待ing。。。。】
第二种:感谢评论区 Liz_Huang的提示,直接在bat后面添加--backend=leveldb,同时也可以换成--backend=lmdb
编译完毕,重新运行bat文件,仔细检查debug文件夹,会发现有一个文件名为:mean.binaryproto
第五步
将debug文件夹下的mean.binaryproto以及output_folders下的两个文件夹拷贝到caffe-windows\examples\cifar10
在caffe-windows也就是caffe-master(根据版本自行决定)文件夹下新建一个bat文件,用于训练模型,本文使用train.bat
.\Build\x64\Debug\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
在运行之前需要修改几个文件,此处截图超过2M了,传不上来,读者自己核对路径以及CPU训练设置
cifar10_quick_solver.prototxt文件:
# reduce the learning rate after 8 epochs (4000 iters) by a factor of 10# The train/test net protocol buffer definition
net: "examples/cifar10/cifar10_quick_train_test.prototxt"
# test_iter specifies how many forward passes the test should carry out.
# In the case of MNIST, we have test batch size 100 and 100 test iterations,
# covering the full 10,000 testing images.
test_iter: 100
# Carry out testing every 500 training iterations.
test_interval: 500
# The base learning rate, momentum and the weight decay of the network.
base_lr: 0.001
momentum: 0.9
weight_decay: 0.004
# The learning rate policy
lr_policy: "fixed"
# Display every 100 iterations
display: 100
# The maximum number of iterations
max_iter: 4000
# snapshot intermediate results
snapshot: 4000
snapshot_format: HDF5
snapshot_prefix: "examples/cifar10/cifar10_quick"
# solver mode: CPU or GPU
solver_mode: CPU
——————————————————————————————————————————————————————————————————————————
cifar10_quick_train_test.prototxt文件【只贴前面一部分】,需要修改的就是数据格式为leveldb,以及相关路径,自行核对
name: "CIFAR10_quick"
layer {name: "cifar"type: "Data"top: "data"top: "label"include {phase: TRAIN}transform_param {mean_file: "examples/cifar10/mean.binaryproto"}data_param {source: "examples/cifar10/cifar10_train_leveldb"batch_size: 100backend: LEVELDB}
}
layer {name: "cifar"type: "Data"top: "data"top: "label"include {phase: TEST}transform_param {mean_file: "examples/cifar10/mean.binaryproto"}data_param {source: "examples/cifar10/cifar10_test_leveldb"batch_size: 100backend: LEVELDB}
}
一定要核对正确,我好像在设置添加路径的时候多了一个空格,结果出现了下面问题
【PS】一定要细心
最后,运行train.bat时候出现如下界面,说明正在训练
是不是感觉和网上看到的不一样呢?网上都是各种iteration 和loss显示在命令窗口,但是这里出现了prefetch batch等。原因在于我们用的是debug模式下生成的caffe在训练,如果想看到如下情形的结果,请将caffe.sln使用release模式生成(用VS2013打卡caffe.sln以后,上方中间部分的dubug改为release,然后右键工程,重新生成)
第六步
训练完成,会得到如下文件
下面是我训练好的cifar10的model,读者可下载,可自行训练
cifar10_quick_iter_4000.caffemodel.h5的链接:http://pan.baidu.com/s/1o8xSqr4 密码:ftc5
cifar10_quick_iter_4000.solverstate.h5的链接:链接:http://pan.baidu.com/s/1eRGPlNs 密码:589n
第七步
附带说一下caffe train 的finetuning。我们在编译成功caffe以后显示的dos窗口显示的有一行是:
commands:
train train or finetune a model
只要是用caffe train -solver=xxxxxxx,那就是从头开始训练
凡是遇到caffe train -solver=xxxx -weights=xxxxxx.caffemodel(.h5),那就是用已有模型参数(权重偏置)去初始化网络,称为finetune
【caffe-Windows】cifar实例编译之model的生成相关推荐
- 【caffe-Windows】cifar实例编译之model的使用
本文讲解如何对网上下载的一个图片利用训练好的cifar模型进行分类 第一步 上一篇文章训练好以后会得到两个文件 从网上查阅资料解释来看,第一个caffemodel是训练完毕得到的模型参数文件,第二个s ...
- 【caffe-Windows】mnist实例编译之model的生成
其实这个和cifar的实例基本相同,只不过数据转换的方法不一样 [说明,此博客按照我自己的路径设置的相关操作,读者如果自行选择其他路径,记得在bat和prototxt等文件修改路径] 第一步 下载数据 ...
- 【caffe-Windows】mnist实例编译之model的使用-classification
[caffe-Windows]mnist实例编译之model的使用-classification 标签: 深度学习caffe 2016-08-16 11:24 1349人阅读 评论(12) 收藏 ...
- Caffe Windows版本的编译
2019独角兽企业重金招聘Python工程师标准>>> 1:Caffe的主版本只支持Linux,所以要下载专门的Caffe Windows版本,网址为 https://github. ...
- 【caffe-Windows】mnist实例编译之model的使用-matlab
前言 针对上一个caffe文章留下的matlab手写数字识别的问题,感谢caffe中文社区的 @ghgzh 的提示,原文请看:caffe中文社区 第一步 手写图片的制作方法我就不说了,直接把我自己画的 ...
- caffe windows 学习第一步:编译和安装(vs2012+win 64)
转载自:http://www.cnblogs.com/denny402/p/5041060.html 没有GPU,没有linux, 只好装caffe的windows版本了. 我的系统是win10(64 ...
- 终于在windows上成功编译caffe,特分享过程
经过一天的不懈尝试和查找资料,终于完成了在windows上的caffe编译,也是参考了好几位前辈的经验分享,现分享过程如下: 前言:最好基于caffe-windows(https://www.gith ...
- caffe windows学习:第一个测试程序
caffe windows编译成功后,就可以开始进行测试了.如果还没有编译成功的,请参考:caffe windows 学习第一步:编译和安装(vs2012+win 64) 一般第一个测试都是建议对手写 ...
- win10+vs2017+caffe(crnn)编译过程记录(验证成功)
一.准备工作 在windows下使用vs2017编译,使用cmake生成项目工程,caffe依赖很多第三方库,编译之前准备好,具体见下图: 二.生成工程 1.勾选advanced 2.blas选择op ...
最新文章
- Android 个人学习笔记- 导入android项目,无法自动生成R文件的解决方法
- ubuntu14.04中安装opencv2.4.13
- python大数据分析基础教程_基于Python的大数据分析基础及实战
- VC树控件的简单使用
- 用promise封装ajax_vue实践---vue结合 promise 封装原生ajax
- 大规模异构数据并行处理系统的设计、实现与实践
- 苹果6换屏多钱_iphone12换屏多少钱 苹果12/12pro换屏幕官方价格报价
- Python使用numpy和pandas模拟转盘抽奖游戏
- 十年一诺,亚马逊中国今欲先发制人
- linux xwindow 权限,普通用户如何启动XWindow的问题
- java设计模式学习 ----- 单例模式(Singleton)
- zabbix利用sendEmail邮件报警
- char **p作为参数被修改_opencv第1课-加载、修改、保存图像
- doip 源码_DoIP技术(一)
- 1人30天44587行代码,分享舍得网开发经验(修改版)
- 魔兽世界国服服务器稳定,《魔兽世界》国服大服务器功能实装启动
- 基于小程序的网上商城系统的设计与实现毕业设计论文,网上购物商城小程序毕业论文
- Java 消息队列、缓存、同步(个人理解:空谈)
- 阿里实习生电话面试果断被鄙视
- hc05与单片机连接图_小白学单片机:单片机烧写器及烧写软件的使用
热门文章
- oracle数据库存储函数,Oracle数据库存储过程
- python输入一个数组输出24进制式的时间_【翻译】《利用Python进行数据分析·第2版》第4章(下)NumPy基础:数组和矢量计算...
- Fliptile(状压+思维)
- Hyperset(排序+二分)
- Change FZU - 2277(线段树+dfs序)
- 报错org.apache.htrace htrace-core4 4.1.0 incubating htrace-core4.jar 报错spark
- linux 命令都是bash,Linux 命令分类_bash基础特性
- ad19电气规则检查_PROTEL DXP电气规则检查
- 解决Ubuntu IDEA 不能输入中文
- Java通过IText导出word和pdf