在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