caffe-windows之彩色图像分类例程cifar10
一、caffe-windows之彩色图像分类例程cifar10
训练测试网络模型【参考1】【参考2】
1. 准备数据
下载二进制数据集数据集,下载链接为http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz,在linux或是w10系统下,也可以直接运行.sh文件下载数据。
解压压缩包,得到6个bin文件和一个batches.meta.txt文件,其中data_batch_1.bin到bata_batch_5.bin是训练数据集,由50000张32*32的彩图组成,test_batch.bin是测试数据集,由10000张32*32的彩图组成,batches.meta.txt为标签文件。
2. 数据格式转换
在examples/cifar10/下新建一个input_folder文件夹,将6个bin文件放入;
利用convert_cifar_data.exe可执行程序转换数据,可以转换成leveldb或mldb格式,直接存放在examples/cifar10/文件夹中。
//leveldb
Build\x64\Release\convert_cifar_data.exe examples\cifar10\input_folder examples\cifar10 leveldb //lmdb
Build\x64\Release\convert_cifar_data.exe examples\cifar10\input_folder examples\cifar10 lmdb
3. 计算数据均值文件
利用compute_image_mean.exe来得到数据集的均值文件,可以根据leveldb格式数据集或是lmdb格式数据集,命令如下:
//leveldb,因为默认数据时lmdb格式,所以要用leveldb格式,需要用-backend字段指明。
Build\x64\Release\compute_image_mean.exe -backend=leveldb examples\cifar10\cifar10_train_leveldb examples\cifar10\mean.binaryproto
//lmdb
Build\x64\Release\compute_image_mean.exe examples\cifar10\cifar10_train_lmdbdb examples\cifar10\mean.binaryproto
4. 训练模型
确定网络模型描述文件为examples/cifar10/cifar10_quick_train_test.prototxt,超参数配置文件为cifar10_quick_solver.prototxt.
如果是lmdb格式数据,只要修改cifar10_quick_solver.prototxt中的solver_mode改为CPU就好;
如果是leveldb格式的话,cifar10_quick_train_test.prototxt中的数据source需要修改,同时backend需要改成LEVELDB。
执行训练命令
Build\x64\Release\caffe.exe train -solver examples\cifar10\cifar10_quick_solver.prototxt
【执行结果】:accruacy有0.7083,loss有0.867989,保存的快照文件为cifar10_quick_iter_4000.caffemodel.h5,cifar10_quick_iter_4000.solverstate.h5

5. 测试网络模型
准备一张待识别的彩色图像,缩放到32*32.

确定识别网络模型描述文件为examples\cifar10\cifar10_quick.prototxt,模型权值文件为examples\cifar10\cifar10_quick_iter_4000.caffemodel.h5,数据集均值文件为examples\cifar10\mean.binaryproto,数据集标签文件为examples\cifar10\batches.meta.txt
利用classification.exe调用网络识别图像
Build\x64\Release\classification.exe examples\cifar10\cifar10_quick.prototxt examples\cifar10\cifar10_quick_iter_4000.caffemodel.h5 examples\cifar10\mean.binaryproto examples\cifar10\batches.meta.txt examples\cifar10\dog.jpg
识别结果0.7744的概率为狗。

二、利用上述网络训练自己的24类字母数据集实现字母识别
之前用mnist的网络去分类,发现效果不好,这次用cifar网络试一下。
数据集包括24个类别的字母(A-Z),每类字母有90张左右的样本。抽取每类样本中的70张,共1680张样本组成训练数据集,剩余466张的样本组成测试数据集。
训练网络的过程与上述过程类似:
准备数据,得到训练标签文件char-trainData.txt和测试标签文件char-testData.txt,文件中的每一行为“样本图像路径+' '+标签” ;
数据集格式转换为lmdb格式,因为cifar10数据集是32*32的彩图,因此这里也将数据集转换成32*32大小的。
//train-data
Build\x64\Release\convert_imageset.exe --resize_height=32 --resize_width=32 examples\my_project\char\ examples\my_project\char\char-trainData.txt examples\my_project/char/char_trainData_db //test-data
Build\x64\Release\convert_imageset.exe --resize_height=32 --resize_width=32 examples\my_project\char\ examples\my_project\char\char-testData.txt examples\my_project/char/char_testData_db
得到数据集均值文件
Build\x64\Release\compute_image_mean.exe examples\my_project\char\char_trainData_db examples\my_project\char\mean.binaryproto
修改网络描述文件和超参数配置文件
cifar10_quick_solver.prototxt里只要修改网络路径net、测试迭代次数test_iter、快照保存路径snapshot_prefix。
cifar10_quick_train_test.prototxt里要修改的有:均值文件路径mean_file、训练或测试数据路径source、单批训练或测试的数量batch_size、最终网络输出的类别数num_output。
训练网络
训练结果如下,最终可以得到0.975的识别准确率,如第一张图所示,但在迭代训练3500次的时候,网络识别准确率更好,达到了0.981818,如图第二张图所示。
Build\x64\Release\caffe.exe train -solver examples\my_project\char\cifar10_quick_solver.prototxt


caffe-windows之彩色图像分类例程cifar10的更多相关文章
- 【转】[caffe]深度学习之图像分类模型AlexNet解读
[caffe]深度学习之图像分类模型AlexNet解读 原文地址:http://blog.csdn.net/sunbaigui/article/details/39938097 本文章已收录于: ...
- caffe windows学习:第一个测试程序
caffe windows编译成功后,就可以开始进行测试了.如果还没有编译成功的,请参考:caffe windows 学习第一步:编译和安装(vs2012+win 64) 一般第一个测试都是建议对手写 ...
- caffe windows 学习第一步:编译和安装(vs2012+win 64)
没有GPU,没有linux, 只好装caffe的windows版本了. 我的系统是win10(64位),vs 2012版本,其它什么都没有装,因此会需要一切的依赖库. 其实操作系统只要是64位就行了, ...
- [caffe]深度学习之图像分类模型VGG解读
一.简单介绍 vgg和googlenet是2014年imagenet竞赛的双雄,这两类模型结构有一个共同特点是go deeper.跟googlenet不同的是.vgg继承了lenet以及alexnet ...
- caffe windows编译
MicroSoft维护的caffe已经作为官方的caffe分支了,编译方式也改了,刚好最近重装了一次caffe windows, 记录一下里面的坑 https://github.com/BVLC/ca ...
- Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤
Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤 一.在ubuntu下尝试 1. 在虚拟机VWware Workstation 12. ...
- 基于Kaggle的图像分类(CIFAR-10)
基于Kaggle的图像分类(CIFAR-10) Image Classification (CIFAR-10) on Kaggle 一直在使用Gluon's data package数据包直接获得张量 ...
- [caffe]深度学习之图像分类模型AlexNet解读
在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军.要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet.这是CNN ...
- Caffe+Windows 环境搭建收集
Caffe+Anconda3+VS2015+Win10(64位)环境搭建 Caffe on Windows (Visual Studio 2015+CUDA8.0+cuDNNv5) Win10+VS2 ...
随机推荐
- c语言数据结构学习心得——线性表
线性表:具有相同数据类型的n(n>0)个数据元素的有限序列. 主要有顺序存储和链式存储. 顺序存储: 特点:地址连续,随机/存取,顺序存储. 建立:首地址/存储空间大小(数组),表长. 方式:静 ...
- ubuntu 16.04 安装googlepinyin中文输入法
安装谷歌拼音输入法 打开终端输入: apt-get install fcitx-googlepinyin 安装完成之后,进入系统设置 安装语言包 修改输入法系统 点击“System Setting”- ...
- springcloud微服务config的使用
首先需要建立一个server端: pom依赖中加入 <dependency> <groupId>org.springframework.cloud</groupId> ...
- 01、前端需要注意哪些SEO?
1.前端需要注意哪些SEO? 1)设置网站TDK标签的设置 2)图片img标签必须加上alt属性 3)h1~h6标签合理使用 4)a标签增加rel="nofollow" 5) 安装 ...
- Hibernate学习笔记(二)—— 实体规则&对象的状态&一级缓存
一.持久化类 1.1 什么是持久化类? Hibernate是持久层的ORM映射框架,专注于数据的持久化工作.所谓的持久化,就是将内存中的数据永久存储到关系型数据库中.那么知道了什么是持久化,什么又是持 ...
- sharepoint_study_3
SharePoint网页无法打开 描述:安装部署好SharePoint开发环境后,再修改计算机的机器名,重启计算机后,发现SharePoint网站不能打开. 解决:1.将机器名改回去,重启计算机,问题 ...
- Fleury算法求欧拉路径
分析: 小Ho:这种简单的谜题就交给我吧! 小Hi:真的没问题么? <10分钟过去> 小Ho:啊啊啊啊啊!搞不定啊!!!骨牌数量一多就乱了. 小Hi:哎,我就知道你会遇到问题. 小Ho:小 ...
- Filezilla 错误
一般来说,只要网站能访问,FTP就应该能连接的,之前好长一段时间一直遇到连接不上香港主机的问题,还以为是宽带出口线路不好,原来是自己学识浅薄,在同事的指点下才明白所以然,下面总结一下FTP连接中的常见 ...
- PIE SDK专题制图保存模板
1. 功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦, ...
- Oracle 角色及其权限
一.简介 Oracle权限分为系统权限和对象权限. 1.系统权限 注意:系统权限不支持级联回收,所以你需要使用sysdba一个个的回收. 2.对象权限 注:对象权限支持级联回收,系统权限不支持级联回收 ...