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源码 ReLU激活函数

1、如何有效阅读caffe源码     1、caffe源码阅读路线最好是从src/cafffe/proto/caffe.proto开始,了解基本数据结构内存对象和磁盘文件的一一映射关系,中间...
  • XZZPPP
  • XZZPPP
  • 2016年08月03日 17:30
  • 5157

caffe源码学习(六) 自定义层

经过前面对google protocol buffer、Blob、SyncedMemory 与 shared_ptr、layer、data layer的初步学习,已经能够仿照caffe中已有的层来写自...
  • u011104550
  • u011104550
  • 2016年06月06日 00:06
  • 3680

caffe 的layer的参数说明

最近在学习caffe做实验 今天就记录一下layer的参数及这些常用的参数的解释吧主要还是参考官方网站 http://caffe.berkeleyvision.org/tutorial/laye...
  • Losteng
  • Losteng
  • 2016年03月08日 15:31
  • 6905

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

转自:http://www.cnblogs.com/lutingting/p/5240629.html 在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,...
  • Sun7_She
  • Sun7_She
  • 2016年07月26日 13:13
  • 6187

caffe学习记录--6--全链接层

全链接层: 名称:全连接。意思就是输出层的神经元和输入层的每个神经元都连接。 全链接层的输入向量是什么呢?对,是特征图,符号化就是X(1)、X(2)、X(3)...X(N*M),括号内是X的下...
  • m0_37407756
  • m0_37407756
  • 2017年05月05日 08:58
  • 195

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

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

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

caffe框架 激活层及其参数介绍
  • TonyYang1995
  • TonyYang1995
  • 2016年07月10日 12:44
  • 611

CAFFE源码学习笔记之激活层

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

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

转载自http://www.cnblogs.com/denny402/p/5072507.html    感谢原文作者的贡献 在激活层中,对输入数据进行激活操作(实际上就是一种函数变换),是逐元素进...
  • c_qianbo
  • c_qianbo
  • 2016年05月22日 14:53
  • 272

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

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

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