[caffe]网络各层参数设置

Posted VincentCheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[caffe]网络各层参数设置相关的知识,希望对你有一定的参考价值。

数据层

数据层是模型最底层,提供提供数据输入和数据从Blobs转换成别的格式进行保存输出,通常数据预处理(减去均值,放大缩小,裁剪和镜像等)也在这一层设置参数实现.

参数设置:

  • name: 名称
  • type: 类型
    • Data: 从LMDB读取数据和标签, 转换(http://deepdish.io/2015/04/28/creating-lmdb-in-python/) 可以使用convert_imageset转换
    • ImageData: 直接读取图片数据
    • ....
  • top: 输出数据(和下一层的bottom一样)
  • bottom: 输入数据()
  • include: 一般训练和测试的时候,模型层不一样,由include指定在哪一层出现, TRIAN/TEST
  • transform_params: 数据预处理
  • data_params: 数据参数
    • source: 数据位置
    • backend
    • batchsize: 设置batch的大小

例如,caffe中自带的mnist example

layer {
  name: "mnist" #名称
  type: "Data" #输入的是LMDB数据,前面的create_mnist.sh做了转换
  include: TRIAN  #只在训练的时候才包括(测试没有label)
  transform_param {
    scale: 0.00390625 #缩放参数
  }
  data_param {
    source: "examples/mnist/mnist_train_lmdb" #数据来源是在当前文件夹中的 mnist_train_lmdb中
    backend: LMDB
    batch_size: 64 #batch的大小
  }
  top: "data" #第一层输出data和label, 无bottom
  top: "label" #
}

convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME

 

视觉层

卷积层

卷积的目的是提取feature

  • name: 名称
  • type: 层类型
  • bottom: 输入
  • top: 输出
  • lr_mt: 学习率速率, 最终学习率是这个数乘以solver.prototxt 配置文件中的base_lr; 如果有两个lr_mt一个表示偏置学习率,一个表示权值学习率
  • num_outputs: filter的个数
  • kernel_size: 卷积核大小
  • stride: 步长
  • pad: 边缘扩充
  • weight_filler: 权值初始化, 默认为constant, 值全为0,经常用xavier, 也可设置为gaussian
  • bias_filler: 偏置初始化方法, 一般偏置初始化方法可以不设置

例如:

layer {
  name: "conv1" #名称
  type: "Convolution" #层类型
  bottom: "data" #上一层输入数据
  top: "conv1" #这一层输出数据
  param {
    lr_mult: 1  #权重学习率速率
  }
  param {
    lr_mult: 2  #偏置学习率速率
  }
  convolution_param {
    num_output: 20  #filter的个数
    kernel_size: 5    #卷积核的大小
    stride: 1  
    weight_filler {
      type: "xavier"  #权重初始化方法
    }
    bias_filler {
      type: "constant"  #偏置初始化方法
    }
  }
}

 

池化层

减少数据量和数据维度

  • kernel_size:池化核大小
  • pool: 池化方法, max, ave, stochastic
  • pad:
  • stride

 

Normalization

 

 

 

 

 

 

 

以上是关于[caffe]网络各层参数设置的主要内容,如果未能解决你的问题,请参考以下文章

caffe源码剖析之Blob

CAFFE源码解读1——Blob

caffe中如何可视化cnn各层的输出

Caffe篇--Caffe从入门到初始及各层介绍

caffe——网络参数转化

caffe 一些网络参数