caffe学习(6)激活层

激活(Activation)层又叫神经元(Neuron)层,最主要的是激活函数的设置。

Activation / Neuron Layers
Caffe源码解析6:Neuron_Layer,楼燚航的blog


一般来说,这一层是元素级的运算符,从底部blob作为输入并产生一个相同大小的顶部blob:

  • 输入:n * c * h * w
  • 输出:n * c * h * w

ReLU / Rectified-Linear and Leaky-ReLU

  • 层类型:ReLU
  • 参数(ReLUParameter relu_param):
    • 可选参数
      • negative_slope [default 0]: 用来指定负斜率部分的因子 ν 。完整的函数表达式为: y=max(0,x)+νmin(0,x) 。反向传播的公式为
        Ex=νEyEyifx0ifx>0
  • 示例(./models/bvlc_reference_caffenet/train_val.prototxt):

    layer {
    name: "relu1"
    type: "ReLU"
    bottom: "conv1"
    top: "conv1"
    }

    支持in-place计算,bottom输入和top输出可以相同避免内存消耗。

Sigmoid

  • 层类型:Sigmoid
  • 示例( ./models/bvlc_reference_caffenet/train_val.prototxt):

    layer {
      name: "relu1"
      type: "ReLU"
      bottom: "conv1"
      top: "conv1"
    }

    激活函数表达式为 y=(1+exp(x))1 ,由于收敛速度问题现在用的不多了。

TanH、AbsVal、BNLL

  • 层类型:TanH、AbsVal、BNLL
  • 示例:

    layer {
      name: "layer"
      bottom: "in"
      top: "out"
      type: "TanH"#"AbsVal"、“BNLL”官网上BNLL没有加双引号,应该是有误
    }

    分别是双曲正切函数、绝对值、binomial normal log likelihood( f(x)=log(1+ex) )的简称。

Power

  • 层类型:Power
  • 参数 (PowerParameter power_param):
    • 可选
      • power [default 1]
      • scale [default 1]
      • shift [default 0]
  • 示例:

    layer {
      name: "layer"
      bottom: "in"
      top: "out"
      type: "Power"
      power_param {
            power: 2
            scale: 1
            shift: 0
      }
    }

    幂运算函数为 f(x)=(shift+scalex)p


Caffe中的激活层还有很多,也有一些是加速的层。比如DropoutLayer现在是非常常用的一种网络层,只用在训练阶段,一般用在网络的全连接层中,可以减少网络的过拟合问题。
具体的使用再具体看./src/caffe/layers/下的文件吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值