您的位置:首页 > Web前端

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

2016-08-06 20:17 1081 查看

一、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训练。为了比较CPU和GPU的训练速度,通过修改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.h5、ifar10_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/images下cat.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
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐