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

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


ReLU / Rectified-Linear and Leaky-ReLU
  • 层类型: ReLU
  • CPU 实现代码: ./src/caffe/layers/relu_layer.cpp
  • CUDA GPU 实现代码: ./src/caffe/layers/relu_layer.cu

参数:
Optional(可选的)
  • negative_slope [default 0]: 设置激活函数在负数部分的斜率(默认为 0), 对输入数据小于零的部分乘以这个因子,斜率为 0 时,小于零的部分完全滤掉。

例子( ./models/bvlc_reference_caffenet/train_val.prototxt)

layer {
  name: "relu1"
  type: "ReLU"
  bottom: "conv1"
  top: "conv1"
}
给定一个输入数据, 当 x > 0 时, ReLU 层的输出为 x, 当 x <= 0 时, 输出为negative_slope * x。
当negative_slope未指定时,等同于标准的ReLU函数max(x, 0),该层也支持原(址 in-place)计算, 即它的底层 blob 和顶层 blob 可以是同一个以节省内存开销。


Sigmoid
The Sigmoid 层使用 sigmoid(x)函数计算每个输入数据的输出
  • 层类型: Sigmoid
  • CPU 实现代码: ./src/caffe/layers/sigmoid_layer.cpp
  • CUDA GPU 实现代码: ./src/caffe/layers/sigmoid_layer.cu
例子( ./examples/mnist/mnist_autoencoder.prototxt)

layer {
  name: "encode1neuron"
  bottom: "encode1"
  top: "encode1neuron"
  type: "Sigmoid"
}


TanH / Hyperbolic Tangent
The TanH 层使用 tanh(x)函数计算每个输入数据 x 的输出
  • 层类型: TanH
  • CPU 实现代码: ./src/caffe/layers/tanh_layer.cpp
  • CUDA GPU 实现代码: ./src/caffe/layers/tanh_layer.cu

例子

layer {
  name: "layer"
  bottom: "in"
  top: "out"
  type: "TanH"
}


Absolute Value
The AbsVal 层使用 abs(x)函数计算每个输入数据 x 的输出
  • 层类型: AbsVal
  • CPU 实现代码: ./src/caffe/layers/absval_layer.cpp
  • CUDA GPU 实现代码: ./src/caffe/layers/absval_layer.cu

例子

layer {
  name: "layer"
  bottom: "in"
  top: "out"
  type: "AbsVal"
}


Power
The Power 层使用函数(shift + scale * x) ^ power 计算每个输入数据 x 的输出
  • 层类型: Power
  • CPU 实现代码: ./src/caffe/layers/power_layer.cpp
  • CUDA GPU 实现代码: ./src/caffe/layers/power_layer.cu

参数:
Optional(可选的)
  • power [default 1]
  • scale [default 1]
  • shift [default 0]

例子

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


BNLL
The BNLL 层使用函数 log(1 + exp(x))计算每个输入数据 x 的输出。
  • 层类型: BNLL
  • CPU 实现代码: ./src/caffe/layers/bnll_layer.cpp
  • CUDA GPU 实现代码: ./src/caffe/layers/bnll_layer.cu

例子

layer {
  name: "layer"
  bottom: "in"
  top: "out"
  type: BNLL
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值