一、caffe-windows之彩色图像分类例程cifar10

训练测试网络模型【参考1】【参考2

1. 准备数据

  1. 下载二进制数据集数据集,下载链接为http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz,在linux或是w10系统下,也可以直接运行.sh文件下载数据。

  2. 解压压缩包,得到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. 数据格式转换

  1. 在examples/cifar10/下新建一个input_folder文件夹,将6个bin文件放入;

  2. 利用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. 训练模型

  1. 确定网络模型描述文件为examples/cifar10/cifar10_quick_train_test.prototxt,超参数配置文件为cifar10_quick_solver.prototxt.

  2. 如果是lmdb格式数据,只要修改cifar10_quick_solver.prototxt中的solver_mode改为CPU就好;

    如果是leveldb格式的话,cifar10_quick_train_test.prototxt中的数据source需要修改,同时backend需要改成LEVELDB。

  3. 执行训练命令

     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. 测试网络模型

  1. 准备一张待识别的彩色图像,缩放到32*32.

  2. 确定识别网络模型描述文件为examples\cifar10\cifar10_quick.prototxt,模型权值文件为examples\cifar10\cifar10_quick_iter_4000.caffemodel.h5,数据集均值文件为examples\cifar10\mean.binaryproto,数据集标签文件为examples\cifar10\batches.meta.txt

  3. 利用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
  4. 识别结果0.7744的概率为狗。

二、利用上述网络训练自己的24类字母数据集实现字母识别

之前用mnist的网络去分类,发现效果不好,这次用cifar网络试一下。

数据集包括24个类别的字母(A-Z),每类字母有90张左右的样本。抽取每类样本中的70张,共1680张样本组成训练数据集,剩余466张的样本组成测试数据集。

训练网络的过程与上述过程类似:

  1. 准备数据,得到训练标签文件char-trainData.txt和测试标签文件char-testData.txt,文件中的每一行为“样本图像路径+' '+标签” ;

  2. 数据集格式转换为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
  3. 得到数据集均值文件

     Build\x64\Release\compute_image_mean.exe examples\my_project\char\char_trainData_db examples\my_project\char\mean.binaryproto
  4. 修改网络描述文件和超参数配置文件

    cifar10_quick_solver.prototxt里只要修改网络路径net、测试迭代次数test_iter、快照保存路径snapshot_prefix。

    cifar10_quick_train_test.prototxt里要修改的有:均值文件路径mean_file、训练或测试数据路径source、单批训练或测试的数量batch_size、最终网络输出的类别数num_output。

  5. 训练网络

    训练结果如下,最终可以得到0.975的识别准确率,如第一张图所示,但在迭代训练3500次的时候,网络识别准确率更好,达到了0.981818,如图第二张图所示。

     Build\x64\Release\caffe.exe train -solver examples\my_project\char\cifar10_quick_solver.prototxt

caffe-windows之彩色图像分类例程cifar10的更多相关文章

  1. 【转】[caffe]深度学习之图像分类模型AlexNet解读

    [caffe]深度学习之图像分类模型AlexNet解读 原文地址:http://blog.csdn.net/sunbaigui/article/details/39938097   本文章已收录于: ...

  2. caffe windows学习:第一个测试程序

    caffe windows编译成功后,就可以开始进行测试了.如果还没有编译成功的,请参考:caffe windows 学习第一步:编译和安装(vs2012+win 64) 一般第一个测试都是建议对手写 ...

  3. caffe windows 学习第一步:编译和安装(vs2012+win 64)

    没有GPU,没有linux, 只好装caffe的windows版本了. 我的系统是win10(64位),vs 2012版本,其它什么都没有装,因此会需要一切的依赖库. 其实操作系统只要是64位就行了, ...

  4. [caffe]深度学习之图像分类模型VGG解读

    一.简单介绍 vgg和googlenet是2014年imagenet竞赛的双雄,这两类模型结构有一个共同特点是go deeper.跟googlenet不同的是.vgg继承了lenet以及alexnet ...

  5. caffe windows编译

    MicroSoft维护的caffe已经作为官方的caffe分支了,编译方式也改了,刚好最近重装了一次caffe windows, 记录一下里面的坑 https://github.com/BVLC/ca ...

  6. Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤

    Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤 一.在ubuntu下尝试 1. 在虚拟机VWware Workstation 12. ...

  7. 基于Kaggle的图像分类(CIFAR-10)

    基于Kaggle的图像分类(CIFAR-10) Image Classification (CIFAR-10) on Kaggle 一直在使用Gluon's data package数据包直接获得张量 ...

  8. [caffe]深度学习之图像分类模型AlexNet解读

    在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军.要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet.这是CNN ...

  9. Caffe+Windows 环境搭建收集

    Caffe+Anconda3+VS2015+Win10(64位)环境搭建 Caffe on Windows (Visual Studio 2015+CUDA8.0+cuDNNv5) Win10+VS2 ...

随机推荐

  1. C#实现WebSocket协议客户端和服务器websocket sharp组件实例解析

    看到这篇文章的题目,估计很多人都会问,这个组件是不是有些显的无聊了,说到web通信,很多人都会想到ASP.NET SignalR,或者Nodejs等等,实现web的网络实时通讯.有关于web实时通信的 ...

  2. Navicat Premium 12破解激活

    下载Navicat Premium 12并安装: 蓝奏云下载:Navicat Premium 12注册机   链接:https://pan.baidu.com/s/1mN-urlh--SX1vbq7h ...

  3. redux超易学三篇之二(开始使用react-redux)

    其实 redux 真正让人感到混乱的还是在 react-redux 的使用中. 请配合完整代码参考~:完整源代码 也不是说混乱,主要是网上 推崇 最佳实践.学习一个新东西的时候,本来就很陌生,上来就用 ...

  4. [Microsoft] 微软技术平台的Cloud Building平台AppVeyor

    Link: http://www.tuicool.com/articles/uMBZba http://www.appveyor.com/ 随着云技术的不断完善,基于云的应用越发丰富起来.AppVey ...

  5. filezilla绑定编辑器

    编辑  - >设置 ->文件格式关联 ->输入需要关联的编辑器的路径

  6. window 中安装 hadoop

    win10上部署Hadoop-2.7.3——非Cygwin.非虚拟机   开始接触Hadoop,听人说一般都是在Lunix下部署Hadoop,但是本人Lunix不是很了解,所以Google以下如何在W ...

  7. 2019.3.28 JDBC相关

    JDBC(Java Data Base Connectivity) JDBC是一组用Java编写的类和接口 使用JDBC的好处: 1.Java的开发人员完全不需要关心数据库的连接方式和实现手段 2.提 ...

  8. python time,random,os,sys,序列化模块

    一.time模块 表示时间的三种方式 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间戳 ...

  9. firewall-cmd --reload 防火墙

    防火墙重新加载配置firewall-cmd --reload 查看开放的端口 firewall-cmd --list-ports nano /etc/sysconfig/iptables -A IN_ ...

  10. PIE SDK矢量数据的读取

    1.功能简介 GIS将地理空间数据表示为矢量数据和栅格数据.矢量数据模型使用点.线和多边形来表示具有清晰空间位置和边界的空间要素,如控制点.河流和宗地等,每个要素被赋予一个ID,以便与其属性相关联.栅 ...