ububtu下caffe训练并验证cifar10

前端之家收集整理的这篇文章主要介绍了ububtu下caffe训练并验证cifar10前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在跑完mnist数据集后,想跑一下cifar10,发现网上介绍的资料不多,有些步骤有点麻烦,因此就参考训练mnist数据集的方法对cifar10数据进行训练,最后得到了训练结果。

一、下载数据

进入到caffe根目录,输入下面的代码下载数据:

sudo sh data/cifar10/get_cifar10.sh
可以看到在cifar10文件夹下多了一些文件

二、转换格式

下载好的原始数据为二进制文件,需要转换为leveldb或lmdb才能被caffe识别,在caffe根目录下输入下面的代码进行转换:

sudo sh examples/cifar10/create_cifar10.sh
此时在examples/cifar10目录下可以看到cifar10_test_lmdb和cifar10_train_lmdb两个文件夹。

三、进行训练

在cifar10目录下可以看到train_quick.sh和train_full.sh两个文件,运行这两个文件即可开始数据的训练。

train_quick.sh文件快速训练,最大迭代次数只有4000,而full最大迭代次数则为60000,因此quick训练速度较快,精度只有百分之七十多,full训练完成需要4个小时左右(机器不同训练时间可能不一样,且这个时间是我在用GPU的情况下的时间),精度为百分之八十多。如果你需要使用cpu进行训练,需要打开相应的模型描述文件进行修改。如:要使用quick方法进行训练,则打开train_quick.sh文件,可以看到这个文件调用了cifar10_quick_solver.prototxt模型文件,打开cifar10_quick_solver.prototxt,可以看到最后一行为设置gpu or cpu模式,此处根据需要进行修改。默认的为gpu。

输入下面代码开始训练:

sudo sh examples/cifar10/train_quick.sh
如果需要full训练的话,方法是一样的。

此处如果不在caffe根目录下运行会报错,原因是.sh文件调用了编译好的caffe可执行文件,路径是基于根目录的,因此需要在根目录下运行。

四、利用test数据进行分类

训练过程结束后,可以看到在cifar10文件夹下多了几个文件,其中cifar10_quick_iter_5000.caffemodel.h5是最终得到的模型权值数据,cifar10_quick_iter_5000.solverstate.h5保存了训练状态数据。这两个文件都是二进制数据。此处用来分类文件cifar10_quick_iter_5000.caffemodel.h5文件

依旧是在caffe根目录下输入下面的代码进行分类

sudo ./build/tools/caffe.bin test -model examples/cifar10/cifar10_quick_train_test.prototxt -weights examples/cifar10/cifar10_quick_iter_5000.caffemodel.h5 -iterations 100
分类过程比较快,几分钟就可以看到分类的结果,我电脑上最终得到的accuracy平均为80+%.
五、总结

跑例子只是学习的手段之一,在执行上面的每个步骤的过程中,最好理解每一步的原理再去执行会学到更多,在运行这些文件的时候建议看一下这些文件中的代码,确定一下文件之间的调用关系,熟悉caffe训练一个数据集的过程。

以上。

猜你在找的Ubuntu相关文章