在caffe中,网络的结构由prototxt文件中给出,由一些列的Layer(层)组成,常用的层如:数据加载层、卷积操作层、pooling层、非线性变换层、内积运算层、归一化层、损失计算层等;本篇主要介绍激活函数层
1. 激活函数层总述
下面首先给出激活函数层的结构设置的一个小例子(定义在.prototxt文件中)
layer { name: "relu1" //该层名称 type: "ReLU" //激活函数类型 bottom: "conv1" //该层输入数据blob top: "conv1" //该层输出数据blob }
注意:activation是一种element-wise的操作,所以,可以做in-place来节约内存,通过给bottom blob和top blon相同的名字来实验
2. 可选激活函数类型
-
type:"Sigmoid":f(x)=1/(1+e(-x))
-
type:"ReLu":f(x)=max(x,0)
-
type:"AbsVal":f(x)=abs(x)
-
type:"TanH":f(x)=[e(x)-e(-x)]/[e(x)+e(-x)]
-
type:"BNLL":f(x)= (shift + scale * x) ^ power
-
type:"Power":f(x)=log(1 + exp(x))
参考:caffe tutorial