Caffe 基本层参数简介

Caffe更新很快,以下内容可能与最新master有出入,不过如果参数名字没有更改应该没有变化。具体可以查看src/caffe/proto/caffe.proto文件内的定义。


1. Data输入层

  name / type / top / bottom 是所有layer都有的参数域,DATA层与众不同的是包含data_param和transform_param两个域,并且通常包含会有data和label两个blob作为top。


  1.1 DATA类型

对crop_size的解释:


  1.2 MEMORY_DATA类型


  1.3 HDF5_DATA类型


  1.4 IMAGE_DATA类型


2. Convolution层

其中weight_filler与bias_filler包含如下参数:


3. RELU层

  该层仅包含一项optional参数——relu_param下的negative_slope,当未指定该项时,为标准的RELU层;当指定时,对于x<0的输入,输出为negative_slope*x,而不是0。


4. Pooling层

  Pooling层与conv层参数非常相近,去除了学习率和filler的参数。在setup环节,pooling与conv层也几乎一致。


5. LRN层

  LRN层的目的是要对每一个点的邻域内进行归一化,包含如下参数项:

举例,LRN层的bottom的blob为10x6x25x25,local_size=3,norm_region=ACROSS_CHANNELS时,归一化邻域为3x1x1的空间;当norm_region=WITHIN_CHANNEL时,归一化邻域为1x3x3的空间。

归一化后的x=,n=邻域空间内的输入个数

注:LRN仅支持奇数的local_size参数。


6. Inner_product层

  Inner_product层同样与conv层有着相近的参数项和结构,不做过多解释。


7. Dropout层

  唯一的optional参数项dropout_param下的dropout_ratio,默认为0.5。含义将在迭代调整参数部分解释。


8. Accuracy层

  唯一的optional参数项accuracy_param下的top_k,默认为1,指明测试为top_?的准确率。


9. Softmax_loss

  softmax_loss层没有参数项,唯一值得注意的是,它封装了一个softmax层在其中,也就是说softmax_loss=softmax+loss regression。


10. Concat层

  CONCAT层仅包含concat_param下的concat_dim一个参数项,且取值必须为0或1. 该层的意义是把两个层拼接成一个:假设有两个bottom输入,分别为N1 x K1 x W1 x H1 和 N2 x K2 x W2x H2, 则有如下关系:

当K1=K2 & H1=H2 & W1=W2时,可以令concat_dim =0,得到top为(N1+N2)xK1xH1xW1;
当N1=N2 & H1=H2 & W1=W2时,可以领concat_dim =1,得到top为N1x(K1+K2)xH1xW2.

当前仅支持在N和K维度上的合并。


11. 其他类型

  比如激活函数层除了RELU还有SIGMOID / TANH / THRESHOLD类型,再比如Local-shared weight层。


am

 









 








猜你喜欢

转载自blog.csdn.net/dyx810601/article/details/79609236