我已經在caffe(C++)中編寫了一個自定義圖層。在運行此代碼時(訓練使用此圖層的模型),會調用設置圖層(圖層的"LayerSetUp"
方法)(通過編寫一段可在硬盤上創建文件並轉儲一些數據的代碼進行驗證)。但是Forward_cpu()
和Backward_cpu()
方法在執行過程中似乎沒有被調用。可能的原因是什麼?未調用Caffe圖層函數
以下是運行模型以輸出使用此自定義丟失圖層的輸出。
...
I0715 09:23:57.415463 31256 net.cpp:84] Creating Layer loss
I0715 09:23:57.415472 31256 net.cpp:406] loss <- permute_conv11
I0715 09:23:57.415482 31256 net.cpp:406] loss <- bbox
I0715 09:23:57.415495 31256 net.cpp:380] loss -> loss
I0715 09:23:57.433014 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.437386 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438171 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438897 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.438989 31256 layer_factory.hpp:77] Creating layer loss
I0715 09:23:57.440030 31256 net.cpp:122] Setting up loss
I0715 09:23:57.440052 31256 net.cpp:129] Top shape: (1)
I0715 09:23:57.440058 31256 net.cpp:132] with loss weight 1
I0715 09:23:57.440099 31256 net.cpp:137] Memory required for data: 3146726596
...
爲什麼損耗層被調用多次(在上面的代碼段)的原因是,我用定製層內的層來調用其它層,("Softmax"
類型的SOFTMAX,"Sigmoid"
類型的乙狀結腸的reshape_softmax鍵入"Reshape"
,reshape_sigmoid「重塑」,另一個"Reshape"
層。所有這些5層上的輸入斑點的不同部分起作用以這種定製層)
Forward_cpu()方法似乎並不在所有同時培養所調用的模型。可能是什麼問題,我該如何解決?
是的,這是問題!非常感謝 – harman