【caffe学习笔记——cifar10】win10+caffe环境下cifar10运行
本人初学深度学习——caffe框架,想用几个实例来入门,cifar10为其中之一,在参考了博主汽车数据技术前瞻的帖子:http://blog.****.net/lance313/article/details/53964874之后,将学习内容进行了总结,总结的内容基本和我参考的帖子差不多,主要目的是加深印象并方便以后查阅。
##cifar数据集的介绍##
Cifar-10是由Hinton的两个大弟子Alex Krizhevsky、Ilya Sutskever收集的一个用于普适物体识别的数据集。Cifar是加拿大政府牵头投资的一个先进科学项目研究所。这个项目结集了不少计算机科学家、生物学家、电气工程师、神经科学家、物理学家、心理学家,加速推动了DL的进程。DL强调的是自适应感知和人工智能,是计算机与神经科学交叉。DM强调的是高速、大数据、统计数学分析,是计算机和数学的交叉CIFAR-10数据集含有6万个32*32的彩色图像,共分为10种类型,包含50000张训练图片,10000张测试图片数据集的数据存在一个10000*3072的数组中,单位是uint8s,3072是存储了一个32*32的彩色图像。(3072=1024*3)。前1024位是r值,中间1024是g值,后面1024是b值。这个数据集最大的特点在于将识别迁移到了普适物体,而且应用于多分类(姊妹数据集Cifar-100达到100类,ILSVRC比赛则是1000类)。
#数据集的下载#
官方网址:http://www.cs.toronto.edu/~kriz/cifar.html
为防止文件的混乱,在E:\caffe\caffe-master\examples\cifar10目录下新建一个input文件夹,将下载的数据集解压到此文件夹下。
#数据集格式的转换#
因为caffe框架下数据集文件格式为leveldb,因此要把上述文件转换成leveldb格式。同样在E:\caffe\caffe-master\examples\cifar10目录下新建一个output文件夹,将转换后的文件放在此文件夹下;
在cifar10目录下打开命令提示符界面(方法:打开cifar10文件夹,在目录框内输入cmd,点击回车),输入一下内容:“convert_cifar_data input output leveldb",如下:
此时output文件夹下有了cifar10_train_leveldb和cifar10_test_leveldb两个文件。
#计算均值#
同样在E:\caffe\caffe-master\examples\cifar10目录下新建一个test文件夹,将计算的均值文件放在此文件夹中;在cifar10目录下打开命令提示符界面,输入以下内容:“compute_image_mean output/cifar10_train_leveldb test/mean.binaryproto --backend leveldb”。如下:
运行成功后在test文件夹下会出现mean.binaryproto均值文件。
#训练模型#
第一步,修改两个文件内容:
第一个,E:\caffe\caffe-master\examples\cifar10目录下的cifar10_quick_solver.prototxt文件,若你使用CPU进行训练则改为CPU,若使用GPU进行训练则改为GPU。注:此处我用GPU。
第二个,E:\caffe\caffe-master\examples\cifar10目录下的cifar10_quick_train_test.prototxt文件,将里面的文件路径和backend进行修改:
第二步,开始训练模型
在E:\caffe\caffe-master目录下打开命令提示符界面,输入:Build\x64\Release\caffe.exe train -solver=examples/cifar10/cifar10_quick_solver.prototxt
训练完成后,在E:\caffe\caffe-master\examples\cifar10目录下生成了cifar10_quick_iter_4000.caffemodel.h5和cifar10_quick_iter_4000.solverstate.h5文件。
但是在后期应用中需要caffemodel文件而非caffemodel.h5文件,因此需要将cifar10_quick_solver.prototxt文件中第23行注释掉,再次进行训练。
训练完成,此时在E:\caffe\caffe-master\examples\cifar10目录下生成了cifar10_quick_iter_4000.caffemodel和cifar10_quick_iter_4000.solverstate文件。
#模型调用测试#
第一步,标签文件;
在E:\caffe\caffe-master\examples\cifar10目录下新建一个文本文档synset_words.txt,里面依次写入如下标签:
第二步,准备被测试图片,这里使用了一张猫的图片cat.jpg:
第三步,在E:\caffe\caffe-master\examples\cifar10目录下打开命令提示符界面,输入以下内容:classification cifar10_quick.prototxt cifar10_quick_iter_4000.caffemodel.h5 test\mean.binaryproto synset_words.txt cat.jpg
注:关于cifar数据集训练模型的详细信息可参考:http://www.cnblogs.com/neopenx/p/4480701.html