在caffe中添加新的layer

Posted linux_zero

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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/ayers)中实现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执行文件)

以上是关于在caffe中添加新的layer的主要内容,如果未能解决你的问题,请参考以下文章

Caffe学习系列(15):添加新层

caffe添加自己的层

caffe增加新的layer

caffe新建layer完整流程;

caffe Layer代码中文注释

caffe window接口的例子