在caffe中添加新的layer


比如現在要添加一個vision layer,名字叫Ly_Layer:(一般命名第一個字母大寫,其余小寫。)

1、屬於哪個類型的layer(共五種:common_layer, data_layer, loss_layer, neuron_layer, vision_layer ),就打開哪個 hpp文件(caffe-master/include/caffe/),這里就打開vision_layers.hpp,然后自己添加該layer的定義,或者直接復制Convolution_Layer的相關代碼來修改類名和構造函數名都改為Ly_Layer,如果不用GPU,將*_gpu的聲明都去掉。

2、實現自己的layer,編寫Ly_Layer.cpp,加入到src/caffe/layers,主要實現Setup、Forward_cpu、Backward_cpu。

3、如果需要GPU實現,那么在Ly_Layer.cu(同樣在/src/caffe/layers)中實現Forward_gpu和Backward_gpu。

4、修改src/caffe/proto/caffe.proto,好到LayerType,添加Ly,並更新ID,如果Layer有參數,添加LyParameter類。

5、在src/caffe/layer_factory.cpp中添加響應代碼(一堆的if...else...)。

6、在src/caffe/test中寫一個test_Ly_layer.cpp,用include/caffe/test/test_gradient_check_util.hpp來檢查前向后向傳播是否正確。

 

(.hpp頭文件;.cpp執行文件)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM