caffe中编译自定义或修改后的层

1. 背景

最近需要训练人脸识别里面的CombinedMargin Loss方法,这个loss里面有一些新定义的层,并且对一个全连接层进行了源码修改。因此需要在官方的caffe源码基础上把这些新加的或修改的层添加进去到官方caffe源码里面,并重新编译,下面记录具体的编译步骤

参考链接:https://blog.****.net/rainforestgreen/article/details/85232657

2. 修改caffe.proto文件

2.1 我下载的caffe代码为官方链接,这里。然后我把官方链接git到了ubuntu下面

2.1 下载CombinedMargin loss的新定义层和新修改层的文件,这里。可以看到都是新修改的层

caffe中编译自定义或修改后的层

并且这里作者给出了如何添加新修改层到官方caffe中并进行重新编译的方法,如下图。

caffe中编译自定义或修改后的层

2.3  按照作者的方法,我首先把toadd.proto中的全部内容全选复制,然后粘贴到了$CAFFE_ROOT/src/caffe/proto/caffe.proto里面

2.4 按照作者的方法,我把CombinedMargin工程中所有 .hpp 文件复制到 $CAFFE_ROOT/include/caffe/layers/ 文件夹,如果出现同名的,我进行了覆盖。

2.5 按照作者的方法,我把CombinedMargin工程中所有 .cpp and .cu 文件复制到 $CAFFE_ROOT/src/caffe/layers/ 文件夹,如果出现同名的,我进行了覆盖。

2.6 然后编译修改后的caffe官方版本,接下来 enjoy CombinedMargin Loss with youself  !!!