用Caffe for Windows版本配置并训练cifar10
来源:互联网 发布:python编辑器推荐 mac 编辑:程序博客网 时间:2024/04/30 08:04
本人想自己试验训练一个基于resnet的cifar10模型,但是想了想,还是想训练一个基本的cifar10再说,一步一步来。所以,本文以examples/cifar10/为例,主要用于小图片的分类。
第一步: 下载cifar10数据集
该数据有 60000张32*32彩色图片,50000张训练,10000张测试
下载cifar10数据集:http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
将下载好并解压好的数据存放于/data/cifar10/路径
下载好的原始数据是BINARY(二进制)格式的,需要转换成LMDB或LEVELDB格式才能被Caffe识别(本文以LEVELDB格式为例)。
第二步: 将数据转换为leveldb格式
我们已经编译好Caffe,可参考前面的博客Caffe环境搭建,只需要在根目录D:\caffe-master下编写一个脚本,完成后双击该脚本即可,我是将Caffe的源码解压在D盘的。
脚本文件如下所示:
.\Build\x64\Release\convert_cifar_data.exe ./data/cifar10 ./examples/cifar10 leveldb
pause
脚本代码解释如下所示:
.\Build\x64\Release\convert_cifar_data.exe 表示图像数据处理需要的可执行文件
./data/cifar10 表示输入数据文件路径
./examples/cifar10 表示输出数据文件路径
leveldb 表示数据格式,你也可以尝试生成lmdb格式
第三步: 生成图像数据均值文件
我们已经编译好Caffe,只需要在目录D:\caffe-master下编写一个脚本就好,完成后双击脚本。
注意1:要如何编写bat脚本文件?其实就是新建一个文本文件,然后将后缀名改写成bat就可以了。
注意2:由于lmdb在windows下无法使用lmdb的库,所以要改成leveldb。又因为backend默认的是lmdb,所以你每一次用到生成的图片leveldb数据的时候, 都要把“–backend=leveldb”带上,这个很容易忘了。
脚本如下所示:
.\Build\x64\Release\compute_image_mean.exe -backend=leveldb ./examples/cifar10/cifar10_train_leveldb mean.binaryproto
pause
脚本代码解释如下所示:
.\Build\x64\Release\compute_image_mean.exe 表示图像数据进行初始化处理,需要compute_image_mean.exe可执行文件
-backend=leveldb 表示数据格式,如果不添加这句话的,默认转化为lmdb
./examples/cifar10/cifar10_train_leveldb 表示刚才生成的训练数据集的路径,而不是val验证数据集的路径
mean.binaryproto 表示输出均值文件名,后缀名为binaryproto。这里默认保存在当前路径下,也就是在D:\caffe-master。
第四步:配置网络文件
该版本的网络配置文件有很多,我这里用/examples/cifar10/cifar10_quick_train_test.prototxt。打开之后修改训练数据和验证数据以及均值文件的路径;修改里面的mean_file和source的路径,backend一律改为LEVELDB。如下图所示,红色部分为修改过后的:
注意:训练数据和验证数据以及均值文件的路径中不能有 “\”,因为可能“\ ”符号会把特殊的东西转为转义字符,所以文件路径必须以“*D: /SystemProgram/MySql”的形式出现。*
由于我是GPU模式的,之前配置过invida,所以在/examples/cifar10/cifar10_quick_solver.prototx文件里面的模式为GPU;如果没有GPU的朋友,需要改为CPU,如下图所示,红色圆圈为修改过的,原先为GPU模式。
第五步: 训练日志
由于使用了cifar10_quick_train_test.prototxt,对应的在模型训练设置文件上我们使用cifar10_quick_solver.prototxt,其实不需要修改内容,当然你也可以自己指定一些参数。
我们已经编译好Caffe,只需要在根目录D:\caffe-master下编写一个脚本,完成后双击该脚本即可。
.\Build\x64\Release\caffe.exe train –solver=examples/cifar10/cifar10_quick_solver.prototxt
pause
要是想进行验证的话,可以修改命令为:
.\Build\x64\Release\caffe.exe test –model=examples/cifar10/cifar10_quick_train_test.prototxt
pause
在examples/cifar10/文件夹中,找到了训练出来的模型cifar10_quick_iter_5000.caffemodel。
最后,部分结果如下:
总结一下训练一个网络用到的相关文件:
1:cifar10_quick_solver.prototxt:方案配置,用于配置迭代次数等信息,训练时直接调用caffe train指定这个文件,就会开始训练
2:cifar10_quick_train_test.prototxt:训练网络配置,用来设置训练用的网络,这个文件的名字会在solver.prototxt里指定
3:cifar10_quick_iter_4000.caffemodel.h5:训练出来的模型,后面就用这个模型来做分类
4:cifar10_quick_iter_4000.solverstate.h5:也是训练出来的,应该是用来中断后继续训练用的文件
5:cifar10_quick.prototxt:分类用的网络
- 用Caffe for Windows版本配置并训练cifar10
- caffe for windows 训练cifar10
- caffe for windows 训练cifar10
- caffe for windows 训练cifar10
- caffe for windows 训练cifar10
- Caffe for Windows 训练cifar10
- caffe for windows 训练cifar10
- caffe for windows 训练cifar10
- caffe for windows 训练cifar10
- Caffe for Windows 训练cifar10 VS2013
- Caffe for windows 训练cifar10数据集
- caffe for windows 训练cifar10 及若干问题
- caffe学习笔记之Caffe for Windows 训练cifar10
- caffe for windows 实现cifar10图像训练生成caffemodel
- ububtu下caffe训练并验证cifar10
- windows上 caffe例程cifar10的训练
- windows环境下训练caffe中cifar10数据集
- windows下运行caffe例子:cifar10图像训练生成caffemodel
- svn的多项目并行源码管理与自动发布思考
- java获取kafka中的消息数据
- Redis 管道pipeline
- Mina学习笔记(2) HelloWorld(TCP/IP)
- echart3.0 节点关系图,自定义提示。边上属性不显示的问题。
- 用Caffe for Windows版本配置并训练cifar10
- 选择器的回顾
- 百度坐标转WGS84坐标
- 集装箱编号校验码规则及java程序的实现
- OpenStack 学习笔记(一) 概况
- 在Oracle数据库里创建自增ID字段的步骤
- 项目整体管理 考纲与考试要点
- javascript模块化编程:CommonJS和AMD规范
- ThinkPHP 的页面静态化功能的实现(一)