深度学习Caffe平台实例——CIFAR-10数据集在caffe平台上模型训练及实例使用模型进行预测

来源:互联网 发布:淘宝客的 店铺推广 编辑:程序博客网 时间:2024/05/24 01:50

一、CIFAR-10数据模型训练

1.下载二进制的cifar文件

 

cd $CAFFE_ROOT

./data/cifar10/get_cifar10.sh  

 

说明:该脚本会下载二进制的cifar,并解压,会在/data/cifar10中出现很多batch文件,如下图所示:




2.生成数据集库和数据集图像均值文件

cd $CAFFE_ROOT

./examples/cifar10/create_cifar10.sh  

 

说明:运行后将会在examples中出现数据集cifar10_xxx_lmdb和数据集图像均值mean.binaryproto,如下图所示:




3.选择CPU或GPU训练方式

CIFAR-10比较小,可以用GPU训练,当然也可以用CPU训练。为了比较CPUGPU的训练速度,通过修改cifar*solver.prototxt中的一行代码来实现。




4.以“quick”模型进行训练,生成模型

 

cd $CAFFE_ROOT

  ./examples/cifar10/train_quick.sh  

 

说明:先以0.001的学习率迭代4000次,再以0.01的学习率接着再迭代1000次,共5000。训练后生成模型文件:

cifar10_quick_iter_4000.caffemodel.h5ifar10_quick_iter_4000.solverstate.h5

结果如下图所示,生成


二、在终端使用python接口应用模型预测

方法:caffe开发团队实际上也编写了一个python版本的分类文件,路径为python/classify.py,也即是:使用python/classify.py代码进行图像文件预测。但是,该文件有两个问题:第一、均值计算错误。第二、预测结果保存至文件中看不到。因此,先解决这两个问题:

1.修改均值计算错误

 

classify.py文件找到

mean = np.load(args.mean_file)  

 

在下面加上一行:

mean=mean.mean(1).mean(1)  

如图:



2.添加在终端命令行中显示结果代码,代码太长,如下图所示:


3.根据上述代码,修改分类标签文件内容,如下图所示:

标签文件主目录下caffe/data/clfar10下,名字为:batches.meta.txt


4.找到测试图片

测试图片为主目录/caffe/examples/imagescat.jpg文件,如下图所示:


5.使用classify.py对caffe自带的测试图片cat.jpg进行分类预测。

python python/classify.py --print_results --model_def examples/cifar10/cifar10_quick.prototxt --pretrained_model examples/cifar10/cifar10_quick_iter_5000.caffemodel.h5 --labels_file data/cifar10/batches.meta.txt --center_only  examples/images/cat.jpg foo

 

执行命令如下图所示:



执行结果如下图所示:


命令行参数说明:--print_results        输入出结果

                --model_def         模型定义文件

                --pretrained_model   训练后的文件

                --labels_file          标签文件

                Foo                测试结果存放文件

三、小结

本文档是对CIFAR-10数据集在caffe平台下进行训练生成模型,以及根据数据模型对图像数据进行分类预测的完整文档。目前,互联网上这样的完整文档较少,其中,结果分类文件和标签文件花费了本人将近一天的时间。因此,制作该详细文档,以利于后来的小伙伴们。

四、参考资料

http://www.cnblogs.com/alexcai/p/5468164.html

http://blog.csdn.net/dcxhun3/article/details/52021296

 




2 0
原创粉丝点击