caffe学习笔记(三)ImageNet实例

个人认为,相对于MNIST和CIFAR-10来说,ImageNet实例或许是caffe中最具有学习价值的实例。通过该实例的学习,你可以用caffe在自己的数据集上搭建自己的模型。当然,如果你没有那么多的时间和精力去重新训练一个ImageNet网络,只是想要一个训练好的现成的模型,那么你也可以去官网上的model zoo部分找到你所要的。caffe 中打包好了几个训练好的BVLC模型,你可以‘开箱即用’。caffe中的BVLC模型有以下四类:
1.BVLC Reference CaffeNet
该模型是在ILSVRC 2012 数据集上训练的AlexNet,来源于Krizhevsky 等人在NIPS 2012上的论文 ImageNet classification with deep convolutional neural networks中的实验,不过caffe中的模型与论文中的模型略有不同。(由 Jeff Donahue 训练)
2.BVLC AlexNet
在ILSVRC 2012 数据集上训练的AlexNet,该模型与1中所述模型的不同点在于,它几乎与论文中描述的模型一模一样。(由Evan Shelhamer训练)
3.BVLC Reference R-CNN ILSVRC-2013
按照Girshick等人在CVPR 2014所述,纯粹用caffe实现的R-CNN模型。(由Ross Girshick训练)
4.BVLC GoogLeNet
GoogLeNet模型,按照Szegedy等人在ILSVRC 2014中的文章Going Deeper with Convolutions 中的模型所训练得到的。(由Sergio Guadarrama 训练)
上面这些模型你可以在python或matlab中直接调用。
数据集
这里使用的ImageNet数据集,特指ILSVRC12 challenge使用的数据集。
训练集:1281167
验证集:50000
测试集:100000(我下的数据集中测试样本有100000,Alex Krizhevsky论文中说的是150000)
数据集中的图像大小是不统一的,在预处理时,将所有图片resize为256*256的,并减去均值。

模型简介
caffe学习笔记(三)ImageNet实例_第1张图片

模型参数

60 million parameters and 650,000 neurons, consists of five convolutional layers, some of which are followed by max-pooling layers, and three fully-connected layers with a final 1000-way softmax.
按论文中的计算方式,模型总共分为8层,前5层是卷积层,后三层是全连接层。其中第1、2、5这3层的卷积层后面跟有max pooling层,算作一个卷积层。中间的第3、4层只有卷积没有pooling。

用了两个策略:
为了节省梯度下降中的训练时间,使用ReLU激活函数。
为了减少全连接层中的过拟合,在全连接层中使用dropout。

该模型工作的数据流过程如下所示:
1.conv1阶段DFD(data flow diagram):

2.conv2阶段DFD(data flow diagram):

caffe学习笔记(三)ImageNet实例_第2张图片

3.conv3阶段DFD(data flow diagram):

这里写图片描述

4.conv4阶段DFD(data flow diagram):

这里写图片描述

5.conv5阶段DFD(data flow diagram):

caffe学习笔记(三)ImageNet实例_第3张图片

6.fc6阶段DFD(data flow diagram):

caffe学习笔记(三)ImageNet实例_第4张图片

7.fc7阶段DFD(data flow diagram):
caffe学习笔记(三)ImageNet实例_第5张图片

8.fc8阶段DFD(data flow diagram):

caffe学习笔记(三)ImageNet实例_第6张图片

结果
test accuracy:57.7%
在NVIDIA Tesla K20上训练一次需要近两周的时间

参考文献:
http://www.open-open.com/lib/view/open1421995285109.html

你可能感兴趣的:(caffe,卷积,ImageNet,Alexnet,BVLC模型)