上一篇博客介绍了如何用alexnet跑自己的数据,能跑自己的数据按理说再跑cifar10应该没问题了啊,但是想想还是要把cifar10的记录下来,因为cifar10数据格式是属于特殊的数据格式,需要用caffe环境把数据转换文件编译出来,这也是后面Siamese网络所必须的一个步骤,说到Siamese网络,,,,我要再哭5分钟。好,五分钟时间到,我们开始train。另外,如果是Ubuntu系统,跑cifar10只需要双击三个.sh文件,但是没办法,window系统要更加繁琐一些,所以我觉得有必要把步骤写下来。
说到cifar10,我就不多做介绍了吧, Cifar-10是由Hinton的两个大弟子Alex Krizhevsky、Ilya Sutskever收集的一个用于普适物体识别的数据集。Cifar-10由60000张32*32的RGB彩色图片构成,共10个分类。50000张训练,10000张测试(交叉验证)。这个数据集最大的特点在于将识别迁移到了普适物体,而且应用于多分类(姊妹数据集Cifar-100达到100类,ILSVRC比赛则是1000类)。
在2004年,两个大弟子拿到少量资金构建cifar10用于普适物体识别,估计当时也是看他们没钱,施舍给他们的,呵呵,说笑了,深度学习的鼻祖,怎么能有这么灰暗的历史呢,不过估计当时他们自己也没有预想到后面这个数据集会有这么大的用途。
1、下载数据
从cifar10官网上下载吧。地址:http://www.cs.toronto.edu/~kriz/cifar.html,下载好了解压缩,如下,五个训练文件,一个测试文件
2、编译convert_cifar_data
啊啊啊,我的caffe中没有convert_cifar_data怎么办?没错,我的电脑上的确没有,在这个地方博主跳了好多坑,在caffe-windows-master\examples\cifar10文件夹下有一个convert_cifar_data.cpp文件,虽然有这个文件,怎么编译啊?在caffe中新建一个工程,把cpp文件导进去,开始编译?别做梦了,各种配置错误,找不到各种文件。。。。。
哈哈,不绕弯子了,博主想到了一个非常巧妙的方法,在caffe-windows-master\build_cpu_only文件夹中,有一个convert_imageset文件夹,这个是用来转换数据的工程,在前面两个博客中都用到了这个工程编译的文件,把这个文件复制一下,然后把其中的release文件删除,只保留剩下的三个文件,然后把复制的这个文件夹和文件夹里的三个文件重命名为convert_cifar_data,没错,就是这么巧妙!成功的解决了配置文件路径的问题!
然后用vs打开复制的这个工程,这个时候这个工程的名称还没有换,需要重命名一下,然后把这个工程里原来的那个cpp文件移除,把在caffe-windows-master\examples\cifar10\convert_cifar_data.cpp右键添加进来。
添加之后:
愉快的开始生成吧。生成之后,会在bin目录下生成如下几个文件:
其中,convert_cifar_data.exe就是我们需要的可执行文件。
3、转换数据
在data文件夹下新建一个cifar10train文件夹,为什么不建一个cifar10文件夹呢?因为本来已经存在一个cifar10文件了啊,哈哈哈。新建一个转化数据的脚本文件,内容如下:
注意:input就是存放cifar10数据的文件夹,output是转换后输出的文件夹,lmdb是需要转换的数据格式。双击运行之后,在output文件夹下会有如下:
这就是生成的训练和测试数据。
4、计算均值
这一步不啰嗦了,脚本文件如下:
5、开始训练
编写开始训练的批处理文件:
其中需要的cifar10_quick_solver.prototxt和cifar10_quick_train_test.prototxt在caffe-windows-master\examples\cifar10文件夹下都有,这两个协议文件中如何修改,不用多说了吧,如果忘了,去看我上一篇博客,说的很清楚了,不说了。
我记得最后的精度好像是73%.。。。。。。
其实训练cifar10整体流程和之前的是一样的,只不过是数据转换时是不一样的,这应该是在windows环境下,训练cifar最详细的一个说明了吧。
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/production/markdown_views-68a8aad09e.css">
</div>