圖層模板
import caffe
class My_Custom_Layer(caffe.Layer):
def setup(self, bottom, top):
pass
def forward(self, bottom, top):
pass
def reshape(self, bottom, top):
pass
def backward(self, bottom, top):
pass
要記住的重要事項:
- 你的自定義圖層必須從 caffe.Layer 繼承 (所以不要忘記匯入 caffe );
- 你必須定義以下四種方法: setup , forward , reshape 和 backward ;
- 所有方法都有 top 和 bottom 引數,這些引數是儲存輸入和傳遞給圖層的輸出的 blob。你可以使用 top [i] .data 或 bottom [i] .data 訪問它,其中 i 是 blob 的索引,以防你有多個上限或下限 blob。
- 設定方法
在 Caffe 例項化所有層時,在執行的生命週期中呼叫 Setup 方法一次。你可以在此處讀取引數,例項化固定大小的緩衝區。
- 重塑方法
使用 reshape 方法進行初始化/設定,這取決於底部 blob(圖層輸入)大小。在例項化網路時呼叫一次。
- 前進方法
為每個輸入批處理呼叫 Forward 方法,這是你的大多數邏輯所在的位置。
- 後退方法
在向後傳遞網路期間呼叫 Backward 方法。例如,在類似卷積的圖層中,這將是你計算漸變的位置。這是可選的(圖層可以是僅向前的)。