caffe学习系列(4):视觉层介绍

      视觉层包括Convolution, Pooling, Local Response Normalization (LRN), im2col等层。

      这里介绍下conv层。

layer {
  name: "conv1"
  type: "Convolution"
  bottom: "data"
  top: "conv1"
  param {
    lr_mult: 1 //学习率系数,最终的学习率为base_lr*lr_mult
  }
  param {
    lr_mult: 2//偏置的学习率
  }
  convolution_param {
    num_output: 20 //filter的个数
    kernel_size: 5 //省略了pad,扩充边缘,可使卷积后的特征图与原图大小一样
    stride: 1
    weight_filler { //用xavier算来权值初始化
      type: "xavier" //
    }
    bias_filler {
      type: "constant"//为0
    }
  }
}

 

 

 

输入:n*c0*w0*h0

输出:n*c1*w1*h1

 

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

 

 w1=(w0+2*pad-kernel_size)/stride+1;

 

 h1=(h0+2*pad-kernel_size)/stride+1;

 

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

 

更多参考:http://www.cnblogs.com/denny402/p/5071126.html

         介绍了Convolution,pooling,LRN层的参数。

         需要格外注意的是im2col层,以前在matlab中用过,没明白是什么,博主给的图描述的很清晰了。

这张图也揭示了多个特征图、多个卷积核时是如何运算的,一目了然。

         

posted @ 2016-08-24 22:58  牧马人夏峥  阅读(340)  评论(0编辑  收藏  举报