Caffe 初学拾遗(九) Layer Catalogue (Activation/Neuron Layer)

来源:互联网 发布:评价金庸小说 知乎 编辑:程序博客网 时间:2024/05/21 10:45

{承接CNN学习入门,笔者在这里对Caffe官方网站上的相关介绍进行了翻译总结,欢迎大家交流指正}

本文基于此刻最新的release,Caffe-rc3:


3. Activation/Neuron Layer:

一般而言,activation/neuron Layers执行的是逐元素操作,取出bottom blob中的数据,生成同样大小的top blob的数据。

在接下来要介绍的layers中,由于input与output的size的一致性,我们将其忽略。

Input: n * c * h * w

Output: n *c * h * w


ReLU/Rectified-Linear and Leaky-ReLU:

1.网络类型:ReLU

2.CPU版本实现:./src/caffe/layers/relu_layer.cpp

3.GPU版本实现:./src/caffe/layers/relu_layer.cu

4.参数(ReLUParameter relu_param):

4.1 Optional

4.1.1 negative_slope [default 0]: 是否将负值部分通过乘以negative_slope使其得以保留而不是置为0。

E.g.

layer {  name: "relu1"  type: "ReLU"  bottom: "conv1"  top: "conv1"}
对于给出的input value x,ReLU Layer计算:

if x > 0: return x

if x < 0: return x * negative_slope

如果negative_slope参数未设定,则为标准ReLU函数,max(x,0)。

同时也支持恒等函数,top与bottom完全一致,以保留内存空间。


Sigmoid/TanH/Hyperbolic Tangent/Absolute Value/BNLL:

1.网络类型:

Sigmoid/TanH/AbsVal/BNLL(binomial normal log likelihood)

2.CPU版本实现:

./src/caffe/layers/sigmoid_layer.cpp tanh_layer.cpp absval_layer.cpp bnll_layer.cpp

3.GPU版本实现:

./src/caffe/layers/sigmoid_layer.cu 

tanh_layer.cu absval_layer.cu bnll_layer.cu

E.g.

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

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

各Layer逐元素的计算output(Sigmoid(x)/tanh(x)/abs(x)/log(1+exp(x)))。


Power:

1.网络类型:Power

2.CPU版本实现:./src/caffe/layers/power_layer.cpp

3.GPU版本实现:./src/caffe/layers/power_layer.cu

4.参数(PowerParameter power_param):

4.1 Optional

4.1.1 power [default 1]

4.1.2 scale [default 1]

4.1.3 shift [default 0]

E.g.

layer {  name: "layer"  bottom: "in"  top: "out"  type: "Power"  power_param {    power: 1    scale: 1    shift: 0  }}
Power Layer逐元素的计算output((shift + scale * x)^power)。

0 0
原创粉丝点击