caffe添加自定义层

caffe框架可以完成基本的深度学习操作,但为了拓展功能需要自己定义层,或者将别人定义好的层移植进来。

下面以添加双线性插值层(pspnet中自己定义的层)为例说明过程:

1、写头文件 interp_layer.hpp , 放在include/caffe/layers文件夹下;

定义的格式是标准格式,可参考 https://github.com/BVLC/caffe/wiki/Simple-Example:-Sin-Layer,改一下自定义层的名称,定义层中的参数;

2、头文件interp.hpp, 放在include/caffe/util文件夹下;

3、定义层执行的操作 interp_layer.cpp,放在src/caffe/layers/ 路径下;

4、interp.cpp, interp.cu (用于GPU) 放在src/caffe/util/ 路径下;

5、test_interp_layer.cpp放在src/caffe/test/ 路径下

最后重新编译。

make all
make test

之后可以针对性地对新添加的层进行测试,保证无误。

make runtest GTEST_FILTER='InterpLayerTest/*'

其中InterplayerTest的名字是在test_interp_layer.cpp中定义的class的名称。

你可能感兴趣的:(深度学习)