深度学习之caffe Layers-Convolution层

来源:互联网 发布:linux make命令 编辑:程序博客网 时间:2024/05/01 12:12

如果你想在基于caffe卷积神经网络架构中添加Layer层,那么你需要在prototxt文件中定义相关的模型架构.

对于跟图片相关的项目,我们一般都是以图片(images)为输入,输出也是图片(image).

这里需要补充说明的是

1、对于灰度图,颜色沟道,即channel(C=1)。

2、对于彩色图(RGB),颜色沟道即channel(C=3)。


卷积层(convolutional Layers)

下面两条给出了卷积层在caffe源代码的源文件

  • CPU 接口: ./src/caffe/layers/convolution_layer.cpp
  • CUDA GPU 接口: ./src/caffe/layers/convolution_layer.cu

卷积层的相关参数介绍:

num_output(c_o):滤波器(也可以说是卷积核)的个数。

kernel_size(or kernel_h and kernel_w):kernel_h 指定了卷积核的高度,kernel_w指定了卷积核的宽度.

可选参数:

1、bias_term[默认为true]:指定了卷积核的输出是否需要偏置项

2、pad(or pad_h and pad_w)[默认为0]:指定了对于输入图片,我们还需要在图像的补充多少像素

3、stride(or stider_h and stride_w)[默认为1]指定卷积核的卷积间隔,即步长.

4、group(g)[默认为1],将输入和输出沟道分成g组,并且第i个输出的沟道只能连接第i个输入的沟道.

.我们通过一个例子来说明.

layer{

name:"convl"

type:"Convolution"#表示卷积层

bottom:"data"#获取上一层的data blob  

top:"convl"#产生conv1层  

param{lr_mult:1 decay_mult:1}#定义卷积核的学习速度和衰减速率

param{lr_mult:2 decay_mult:0}#定义偏置项的学习速度和衰减速率

convolution_param{

num_output:96

kernel_size:11

stride:4  #卷积核的步长

weight_filter{

type:"gaussian" #通过高斯核来初始化

std:0.01

}

bias_filter{

type:"constant" #初始化偏置为0

value:0

}

}

}

卷积层利用一系列的卷积核对输入图像进行卷积,每一种卷积核将产生一个输出映射。



lr_mult  代表 你设置的学习率是  solver.prototxt 中base_lr的倍数


decay_mult代表  你设置的weight_decay 是  solver中的倍数 


0 0
原创粉丝点击