Caffe学习(3)——caffe中的视觉层及对应参数

来源:互联网 发布:电脑发短信软件 编辑:程序博客网 时间:2024/03/29 21:34

Caffe的运行,首先要基于一个模型(model),比较常用的模型有Lenet、AlexNet、VGG等;一个模型有多个层构成,层有许多种类型,比如数据层(Data Layers)、视觉层(Vision Layers)、激活层(Activation Layers)等,每层对应着许多参数,这些参数都定义在caffe.proto这个配置文件中。

数据层及其参数的介绍在前一篇文章caffe中的数据层及对应参数进行讨论。


接下来,我们来讨论一下视觉层(Vision Layers)及其参数。


视觉层包括Convolution、Pooling、Local Response Normalization(LRN)等。下面进行详细介绍。

(1)Convolution(卷积层)

卷积层是卷积神经网络(CNN)的核心层。下面以示例作为说明:

layer {  name: "conv1"//层名称  type: "Convolution"//层类型  bottom: "data"//输入数据  top: "conv1"//输出数据  param {//参数    lr_mult: 1//学习率系数,最终的学习率 = 该数 * solver.prototxt配置文件中的base_lr  }  param {    lr_mult: 2  }  convolution_param {//在这里面设定卷积层的特有参数    num_output: 20//卷积核(filter)的个数    kernel_size: 5//卷积核的大小。如果卷积核的长和宽不相等,则需用kernel_h和kernel_w分别进行设定    stride: 1//卷积核的步长,一般默认为1.    weight_filler {//权值初始化      type: "xavier"    }    bias_filler {//偏置顶初始化      type: "constant"    }  }}
注:1)如果有两个lr_mult,则第一个表示权值学习率,第二个表示偏置顶的学习率;一般来说,偏置顶的学习率是权值学习率的两倍。

2)num_output和kernel_size这两个参数是必须设置的。


输入:n * c0 * w0 * h0

输出:n * c1 * w1 * h1

其中,c 1 就是参数中的num_output,生成的特征图个数

w 1 =(w 0 +2*pad­kernel_size)/stride+1;

 h 1 =(h 0 +2*pad­kernel_size)/stride+1;

如果设置stride为1,前后两次卷积部分存在重叠。如果设置pad=(kernel_size­1)/2,则运算后,宽度和高度不变。


2Pooling(池化层)

Pooling是为了减少运算量和数据维度而设置的一种层。下面以示例作为说明:

layer {  name: "pool1"  type: "Pooling"  bottom: "conv1"  top: "pool1"  pooling_param {    pool: MAX//池化方法,默认为MAX,目前可用的方法有MAX、AVE或STOCHASTIC    kernel_size: 3//池化的核大小,也可以用kernel_h和kernel_w来设定    stride: 2//池化的步长,默认为1;一般我们设置为2,即不重叠  }}


Pooling层的运算方法基本和卷积层的一样。

输入:n * c * w0 * h0

输出:n * c * w1 * h1

和卷积层的区别就是其中的c保持不变,

w 1 =(w 0 +2*pad­-kernel_size)/stride+1;

 h 1 =(h 0 +2*pad-­kernel_size)/stride+1;

如果设置stride为2,前后两次卷积部分重叠。100*100的特征池化后,变成50*50


(3)Local Response Normalization(LRN)层

LRN层是对输入的局部区域进行归一化,达到“侧抑制”的效果。

layers{    name: "norm1"  type: LRN  bottom: "pool1"  top: "norm1"  lrn_param {    local_size: 5//默认为5;如果是跨通道LRN,则表示求和的通道数,如果是在通道内LRN,则表示求和的正方形区域长度。    alpha: 0.0001//归一化公式中的参数    beta: 0.75//归一化公式中的参数  }}
补充:归一化公式:对于每一个输入,去除以,得到归一化后的输出。


0 0
原创粉丝点击