700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 使用caffe自带模型训练cifar10数据集

使用caffe自带模型训练cifar10数据集

时间:2021-12-24 15:22:09

相关推荐

使用caffe自带模型训练cifar10数据集

前面训练了mnist数据集!但caffe自带的数据集还有cifar10数据集。同样cifar10数据集也是分类数据集,共分10类。cifar10数据集中包含60000张32x32的彩色图片。(其中包括50000张作为训练集,10000张作为测试集)对于cifar10数据集更为详细的了解请各位百度,在此不再赘述。本文主要谈谈使用caffe自带模型对cifar10数据集进行训练的过程。

cifar10数据集训练步骤如下:

1.下载cifar10数据集:

进入caffe目录(cd caffe),输入以下指令:

./data/cifar10/get_cifar10.sh

程序运行结束即可在同一目录下生成训练集和测试集数据。

2.转换数据格式:

输入以下命令:

./examples/cifar10/create_cifar10.sh

在caffe/data/cifar10中出现相关数据,在caffe/examples/cifar10中出现cifar_train_lmdb和cifar_test_lmdb。

3.配置适合自己的solver文件:

若是使用CPU进行训练,对文件做部分修改,在solvers文件中将solver_mode中的GPU改为CPU。

4.开始训练数据:

使用以下命令:

./examples/cifar10/train_quick.sh

以上就完成了cifar10数据集(quick版)的训练。什么叫quick版呢?原来在cifar10数据集中根据训练次数的多少。把训练模型分为了quick版和full版。下面介绍下quick和full的区别:

quick中先以0.001的学习率训练4000次(见文件caffe/cirfa10/cirf10_quick_solver)。再以0.0001的学习率训练1000次(见文件caffe/cirfa10/cirfa10_quick_solver_lr1)

full中先以0.001的学习率训练60000次(见文件caffe/cirfa10/cirfa10_full_solver),再以0.0001的学习率训练5000次(见文件caffe/cirfa10/caifa10/cirfa10_full_solver_lr1),再以0.00001的学习率训练5000次(见文件caffe/cirfa10/cirfa10_full_solver_lr2)。

Quick和full版本结构图如下:

1.quick版本:

2.full版本:

两图之间最大的区别:full使用了1个全连接层,quick使用了2个全连接层

正如题目所说,很多人会有疑惑:啥叫自带模型?其实这个意思是caffe下载的时候自动提供的文件,而且我也不知道用什么名字去形容。下面详细的介绍下整个训练模型的结构:

输入层-卷积层1-池化层1(最大池化)-非线性层1(relu)-norm层1-卷积层2-非线性层2(relu)-池化层2(平均池化)-norm层2-卷积层3-非线性层3-池化层3(平均池化)-全连接层-精度层-输出损失层

相对于之前的mnist数据集的训练,norm层是新增加的。下面简单介绍一下norm层。(更为详细的介绍,请各位自行百度)

norm层介绍:Local Response Normalization (LRN)层,此层是对一个输入的局部区域进行归一化。在Alexnet和Googlenet中都使用了这个类型的层

同样不要忘记,对模型的测试:

sudo ./build/tools/caffe.bin test -model=examples/cifar10/cifar10_quick_train_test.prototxt-weights=examples/cifar10/cifar10_quick_iter_4000.caffemodel;

到此为止,完成了cifar10数据集的模型建立。第二次完成后是不是感觉轻车熟路,理解更深了呢?在后面的博客中,会使用其他更为经典、更为著名的模型对cifar10进行测试。(ps:为啥选择cifar10而不是mnist,是因为在Lenet网络结构下,mnist数据集模型的精度已经达到较高水平,换用其他高级模型增长不是特别大了,使用cifar10更为典型!)

由于本文作者水平有限,如有不足之处,请各位在下方评论区指正,谢谢!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。