windows+caffe下对CIFAR训练

CIFAR是什么

CIFAR-10和CIFAR-100都是带标签的大小为8000万小图数据集的子集。其中CIFAR-10有10类,每类6000个大小为32x32的图像。其中训练图像和测试图像的比例是5:1,对每类图像,随机选择1000个测试图像,剩下的就是训练图像。

注意到10类图像既有automobile,还有truck。它们是不重叠的。Automobile包含的是轿车,SUV等,truck只包含大卡车,连pickup皮卡也不包括。

Cuda-convnet利用卷积神经网络在没有新增训练数据下可以达到18%的错误率,新增数据可以达到11%的错误率。Jasper Snoek利用贝叶斯超参数优化在相同网络下不借助训练数据新增可以达到15%的错误率。

下载数据集并解压

从Alex Krizhevsky的网站下载二进制格式的CIFAR-10数据集。解压存放在:caffe-master\examples\cifar10\input_folder当中(input_folder文件夹需要自己创建)

解压得到一个txt格式的标签文件。5个训练数据batch,1个测试batch。

转换格式 利用convert_cifar_data.exe和bat

将二进制文件.bin转为为caffe规定的格式leveldb。在caffe-master\examples\cifar10 下创建一个记事本(后缀改为  .bat ),输入以下code,保存为convert_cifar10.bat (后缀改为  .bat)。


..\..\Build\x64\Release\convert_cifar_data.exe input_folder output_folders leveldbpause 

Ps:

1.bat的Usage:Convert_cifar_data input_folderoutput_folder db_type

2.注意不同属性参数之间要以空格分开

3.../得到父级目录

4.Prototxt中注释在行首加#

然后双击运行,可以看到在 caffe-master\examples\cifar10下会生成一个文件夹,output_folders。里面有两个文件夹,存放的就是转换好的数据

计算均值文件  利用compute_image_mean.exe和bat

在caffe-master\examples\cifar10下创建一个记事本(后缀改为  .bat ),输入以下code

..\..\Build\x64\Release\compute_image_mean.exe -backend=leveldb../../examples\cifar10\output_folders\cifar10_train_leveldb mean.binaryprotoPause 

 然后运行此文件,在caffe-master\examples\cifar10 下会出现mean.binaryproto文件

 在prototxt中更改一些参数

更改caffe-master\examples\cifar10 下的cifar10_quick_solver.prototxt和cifar10_quick_train_test.prototxt

cifar10_quick_solver.prototxt改中了:

net:"../../examples/cifar10/cifar10_quick_train_test.prototxt"
snapshot_prefix:"../../examples/cifar10/cifar10_quick"

如果只用CPU计算网络,还要改solver_mode:

solver_mode: CPU
cifar10_quick_train_test.prototxt中改了:solver_mode: CPU
mean_file:"../../examples/cifar10/mean.binaryproto"
source:"../../examples/cifar10/output_folders/cifar10_train_leveldb"mean_file:"../../examples/cifar10/mean.binaryproto"
source:"../../examples/cifar10/output_folders/cifar10_test_leveldb"backend: LEVELDB

Ps:examples/cifar10/中有几种不同的训练模式(quick和full等),要一一对应。

开始训练 利用caffe.exe

在caffe-master\examples\cifar10下创建文本文件,更改后缀为.bat,开始运行。(注意train之后有空格):

..\..\Build\x64\Release\caffe.exe train --solver=../../examples/cifar10/cifar10_quick_solver.prototxt
Pause

bat中只用到了cifar10_quick_solver.prototxt,但在这个文件里面第一个参数就是刚才修改的网络配置文件cifar10_quick_train_test.prototxt,这样才能不断迭代优化求解出参数,得到最终的模型。

还有一种训练方法是在vs中把caffe设为启动项目,调试参数改为train --solver=../../examples/cifar10/cifar10_quick_solver.prototxt。然后ctrl+F5开始调试。

因为是在靠CPU训练,半个多小时后训练才结束,optimization done,examples/cifar10下出现如下两个文件,说明已经训练完成。

在后期应用过程中,需要生成caffemodel文件而非caffemodel.h5文件,我们将cifar10_quick_solver.prototxt中的snapshot_format:HDF5注释掉,重新训练,就可以得到下面的文件

Cifar10_quick_iter_4000.caffemodel是分类器描述文件。Cifar10_quick_iter_4000.solverstate是继续学习将会用到的文件。

现在,可以进入到实测了。


分析这个bat命令,首先使用了编译生成的exe文件。在网络层面,使用了刚训练生成的caffemodel模型和一个prototxt文件,关于prototxt文件,参考博客说是训练后新生成的,但是我的文件日期是2016年的,应该是版本不同的原因。这个prototxt文件应该就是上一篇博客里面分析的修改train_test.prototxt首尾得到的网络配置文件。图像层面,不仅要指定待分类的图像,还要有txt文件,存放类别名称,还要有均值文件,可以提升分类准确性。

classification.exe examples\cifar10\cifar10_quick.prototxtexamples\cifar10\cifar10_quick_iter_4000.caffemodel examples\cifar10\mean.binaryprotomy.txt 3.jpgpause 

注意这个标签txt文件,写成一列,不能有额外的空格。否则出现类别个数与网络最后一层输出个数不符的情况:


结果1 对网上下载的柴犬图像3.jpg的识别

结果2  将下载图像resize成34x34重新识别

看到概率大小发生了变化,但是还是错误的。

结果3  对网上下载的飞机图像的识别


Reference:

1.      https://www.cnblogs.com/TensorSense/p/6260287.html

2.      https://blog.csdn.net/weixinhum/article/details/71304852

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BAT看上了产业互联网

来源:《中国经济周刊》2018年 第 43 期摘要:互联网浪潮正从过去的消费互联网向产业互联网转移,巨头们正在把“矛头”从C(消费者)端转向B(企业)端,他们希望越来越多的企业接入互联网,进行数字化和智能化改造&#xff0c…

hdu 1165 坑爹找规律题

http://acm.hdu.edu.cn/showproblem.php?pid1165 不看题解,使劲找规律,应该是可以找到的,就是费时间! Problem DescriptionAs is known, Ackermann function plays an important role in the sphere of theoretical computer sci…

caffe下matlab、python的配置和faster RCNN的运行

因为自己的电脑没有安装linux环境,显卡也不支持CUDA,所以在实现faster RCNN的demo的过程中还是很麻烦的。 完善项目文件 下图是vs2013 打开的caffe解决方案的工程目录。由于windows版本caffe的不完善,要先在其libcaffe项目中添加roi_poling层…

Innodb 表空间卸载、迁移、装载

从MySQL的Innodb特性中我们知道,Inndob的表空间有共享和独享的特点,如果是共享的。则默认会把表空间存放在一个文件中(ibdata1),当开启独享表空间参数Innodb_file_per_table时,会为每个Innodb表创建一个.ib…

马化腾与中国知名科学家联手发起“科学探索奖”

来源:腾讯今日,公布一件大事情:腾讯基金会将投入10亿元人民币的启动资金资助“科学探索奖”,每年将在基础科学和前沿核心技术方面的九大领域,遴选出50名青年科技工作者。获奖人年龄上限为45岁,且每位获奖者…

转:DP和HDP

Dirichlet Process and Hierarchical Dirichlet Process 原文:http://hi.baidu.com/zentopus/item/46a622f5ef13e4c5a835a28e Dirichlet Process and Hierarchical Dirichlet Process 在这篇文章里,我会初步地介绍Dirichlet Process以及Hierarchical Dir…

摩尔定律的三种走向

来源:科学网中兴事件以来,中国集成电路行业的发展受到全国人民的关注。许多人群情激奋,恨不得马上自力更生,赶上先进。也有一些人认为现在的世界经济是一个综合体,一个国家不可能样样领先,需要时日。正好&a…

李航《统计学习方法》笔记

虽然书名是统计学习,但是却是机器学习领域中和重要的一本参考书。当前的机器学习中机器指计算机,但是所运用的方法和知识是基于数据(对象)的统计和概率知识,建立一个模型,从而对未来的数据进行预测和分析&a…

【2018第五届世界互联网大会】世界互联网领先科技成果发布:带你看看这15项“黑科技”...

世界互联网领先科技成果发布现场。来源:央视网11月7日,第五届世界互联网大会“世界互联网领先科技成果发布活动”在浙江乌镇举行。这是世界互联网大会第三次面向全球发布领先科技成果。发布活动由中国工程院院士、中国互联网协会理事长邬贺铨主持&#x…

利用caffe的python接口实现DeepImageSynthesis实例

在之前实现faster rcnn的博客中,先是配置了caffe的python接口,但是在验证的时候用DeepTexture的实例没有成功。改用pycharm而不是jupyter notebook再试一试,毕竟在IDE中更好调试。 新建工程,选择anaconda2作为解释器,因…

深度:语音技术革命正在改变人类的交流方式

来源:资本实验室语言是我们日常交流的主要方式,可以让我们快速了解对方的意图,并做出适当的反应。但对很多语言障碍者而言,说话这一看似简单的行为依旧是难以想象的困难。语言是件极其复杂的事情,不仅仅是文字表面上的…

李航《统计学习方法》---感知机

这一章就讲了感知机。我觉得是深受工业革命的影响,把一些可以实现功能的基本单元都喜欢叫做什么机,这里的感知机,还有后来的以感知机为基础的支持向量机。直接看定义,看本质,实际上,感知机是一种线性分类模…

5G 对无线通讯芯片产业链的影响

来源:乐晴智库精选▌无线通信芯片概要:未来五年增速放缓,射频前端成为主要驱动力在智能手机普及的带动下,2012-2017五年无线通信芯片实现9.7%的复合增长率,根据iHS的数据,2017年市场规模达到1,322亿美金,占…

图像极坐标变换的研究

做图像配准的时候,发现图像进行旋转的情况下的配准有一些特殊。于是想到可以用极坐标进行配准。查了一下资料,发现大家用的更多的是对数极坐标Log Polar。 笛卡尔坐标系和极坐标系 先来说一下我们常用的笛卡尔坐标。X轴水平向右是正方向,y轴垂…

刚刚、Gartner发布物联网技术十大战略和趋势

来源:网络大数据Gartner的研究副总裁尼克•琼斯(Nick Jones)说:“物联网将在未来十年继续为数字化业务创新带来新的机遇,而许多新机遇有赖于新的或经过改进的技术。洞察创新物联网趋势的CIO们有机会领导本企业的数字化创新。”此外&#xff0…

图像的旋转和尺度缩放在对数极坐标系下的研究

首先来看一张特殊的同心圆图像及其极坐标变换:这是我自己在opencv下用cvLogPolar函数做的实验:极坐标原点选择在同心圆圆心时,同一个圆上的点到圆心的距离相等,所以映射在极坐标中应该是一组垂直于极轴的平行线。在自己的实验中因…

李航《统计学习方法》-----支持向量机

书中第七章才是支持向量机SVM,但在SVM与感知机有相似的地方,看了感知机的知识之后趁热先看看SVM。 首先回顾一下感知机。感知机的模型是线性分类模型,将两种类别标记为正负1,将新的样本输入线性函数,再将线性函数代入符…

乌镇互联网大会发布15项世界领先科技成果

来源:中央广电总台央视新闻客户端11月7日下午,第五届世界互联网大会“世界互联网领先科技成果发布活动”在乌镇互联网国际会展中心举行。大会共现场发布了15项世界互联网领域领先的“黑科技”,引得观众阵阵惊叹。15项世界互联网领先科技成果&…

OpenCV中的傅里叶的门道

接触到傅里叶-梅林算法,需要用到傅里叶变换,于是去查了一下OpenCV中的实现方法,没想到习以为常的傅里叶变换之中的门道还不少。 //傅里叶变换https://blog.csdn.net/keith_bb/article/details/53389819Mat I imread("Lena.jpg", I…

Science:人类迎来目前最为全面的癌症染色质可及性图谱

来源:吴晓波频道摘要:肿瘤在世界范围内导致人类死亡的首要原因之一,尤其是随着医疗水平的发展,人类的寿命的不断延长,癌症逐渐成为威胁人类健康的首要因素。肿瘤在世界范围内导致人类死亡的首要原因之一,尤…