在caffe中添加新的层

如果要在caffe中实现新的代价或者操作通常通过新定义层,然后修改网络的prototxt文件实现。在caffe中添加新的层也涉及到修改许多文件,这里进行记录,方便参考。
1.头文件以及源文件:
由于我是添加的新的损失函数,所以直接修改了include/caffe/loss_layers.h
源文件就是对应的实现函数,添加在目录src/caffe/layers/;
2.在src/caffe/proto/caffe.proto文件里面定义新添加的参数。
首先在:message LayerParameter 中添加新的层的对应的信息,为他分配一个标识符,然后在下面定义这个message。
然后在message V1LayerParameter{}里面添加唯一ID,在外面的optional也相应添加;
完成上面的步骤就可以正常编译了。
以上部分参考这篇博客:http://blog.csdn.net/shuzfan/article/details/51322976
要完成训练过程只需要调整prototxt文件里的网络定义即可。

你可能感兴趣的:(caffe)