一張圖讀懂caffe架構
解釋兩個部分:
一:預處理影象的leveldb構建
輸入:一批影象和label (2和3)
輸出:leveldb (4)
指令裡包含如下資訊:
- conver_imageset (構建leveldb的可執行程式)
- train/ (此目錄放處理的jpg或者其他格式的影象)
- label.txt (影象檔名及其label資訊)
- 輸出的leveldb資料夾的名字
- CPU/GPU (指定是在cpu上還是在gpu上執行code)
LRN好像很少見
二:Local Response Normalization (LRN)區域性響應值歸一化層
- Layer type:
LRN
- CPU Implementation:
./src/caffe/layers/lrn_layer.cpp
- CUDA GPU Implementation:
./src/caffe/layers/lrn_layer.cu
- Parameters (
LRNParameter lrn_param
)- Optional
local_size
[default 5]: the number of channels to sum over (for cross channel LRN) or the side length of the square region to sum over (for within channel LRN)alpha
[default 1]: the scaling parameter (see below)beta
[default 5]: the exponent (see below)norm_region
[defaultACROSS_CHANNELS
]: whether to sum over adjacent channels (ACROSS_CHANNELS
) or nearby spatial locaitons (WITHIN_CHANNEL
)
- Optional
The local response normalization layer performs a kind of “lateral inhibition” by normalizing over local input regions. InACROSS_CHANNELS
local_size x 1 x 1
). InWITHIN_CHANNEL
mode, the local regions extend spatially, but are in separate channels (i.e., they have shape1
x local_size x local_size
). Each input value is divided by(1+(α/n)∑ix2i)β
, where n is the size of each local region, and the sum is taken over the region centered at that value (zero padding is added where necessary).
翻譯下:
層型別: LRN
CPU 實現程式碼: ./src/caffe/layers/lrn_layer.cpp
CUDA GPU 實現程式碼: ./src/caffe/layers/lrn_layer.cu
引數 (LRNParameter lrn_param)
可選
1. local_size [default 5]: 對於跨通道的歸一化,該引數指參與求和的通道數,對於
通道內的規範化,該引數指的是參與求和的方形區域的邊長
2. alpha [default 1]: 尺度引數(見下文)
3. beta [default 5]: 指數引數(見下文)
4. norm_region [default ACROSS_CHANNELS]: 指定在通道之間進行規範化
(ACROSS_CHANNELS)還是在通道內進行規範化(WITHIN_CHANNEL)。
(在通道間指的是沿著通道維度操作,通道內指的是在特徵圖的二維平面內操作)區域性響應值歸一化層通過對輸入資料的區域性歸一操作執行了一種“側抑制”的機制。 在ACROSS_CHANNELS 模式下, 區域性區域沿著臨近通道延伸(而非在特徵圖的平面內),而沒有空間擴充套件(即區域性區域的形狀為 local_size x 1 x 1)。在 WITHIN_CHANNEL 模式下, 區域性
區域在各自通道內部的影象平面上延伸(即區域性區域的形狀為 1 x local_size x local_size以實現歸一化)
每個輸入值除以(1+(α/n)∑ix2i)β
式中,n 是區域性區域的大小,在以當前輸入值為中心的區域內計算加和(如有需要,需在邊緣補零)。
參考官網:http://caffe.berkeleyvision.org/tutorial/layers