caffe学习(6)激活层

原创 2016年11月07日 11:22:21

激活(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/下的文件吧。

版权声明:本文为博主原创文章,转载请标注出处。

相关文章推荐

caffe学习(4)数据层

数据是学习的原料,参考官网和网友的资料,来看一下数据与数据层。 Data:Ins and Outs Caffe学习系列(2):数据层及参数,denny402 数据:输入与输出在Caffe中,...
  • Yan_Joy
  • Yan_Joy
  • 2016年11月06日 21:10
  • 412

caffe学习(10)数据转换img2db

在处理图像时,我们已拥有的图像往往是常用的jpg、png格式,但在caffe中,输入的数据类型常是lmdb或leveldb,因此我们需要对原始数据进行转换。 Caffe学习系列(11):图像数据转...
  • Yan_Joy
  • Yan_Joy
  • 2016年11月08日 17:12
  • 482

DL学习笔记【6】caffe参数调节-卷积层(convolution)

转自:http://www.cnblogs.com/lutingting/p/5240629.html 在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,...

Caffe学习系列(4):激活层(Activiation Layers)及参数

在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入...

caffe学习系列———激活层及参数

caffe学习系列———激活层及参数 在激活层,对输入数据进行激活操作,是逐元素进行运算。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。 输入:n*c*h*w 输...

Caffe学习系列(4):激活层(Activiation Layers)及参数

在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入...

Caffe学习系列(4):激活层(Activiation Layers)及参数

在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入...

【caffe学习笔记】Activation / Neuron Layers 激活层

一般来说,激活层执行逐个元素的操作, 输入一个底层 blob, 输出一个尺寸相同的顶层 blob。 在以下列出的这些层中,我们将忽略输入和输出 blob 的尺寸,因为它们是相同的: 输入: n ...

CAFFE源码学习笔记之激活层

一、前言 在网络中,经过一级卷积层和池化层的处理后,一般都需要进入激活层,进行一次非线性变化或者线性变换。激活层所用激活函数,最开始使用sigmod和tanh函数。但是这两个函数的梯度在越远离x=0...

Caffe学习系列(4):激活层(Activiation Layers)及参数

在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进行运算的。从bottom得到一个blob数据输入,运算后,从top输入一个blob数据。在运算过程中,没有改变数据的大小,即输入...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:caffe学习(6)激活层
举报原因:
原因补充:

(最多只允许输入30个字)