在新版本caffe里添加新的一层(向旧格式中加)

今天实现了在caffe框架中加入一个层,完成欧式距离的任务。之所以这样,是因为还没有实现自己想要的loss,只是试着学者,看能不能把添加层的流程顺下来。最后实现了。
(一)总体框架
1)在./src/caffe/proto/caffe.proto 中增加 对应layer的paramter message;查找euclidean,然后根据euclidean_loss加一个whole_loss,加一个数就可以了。
2)在./include/caffe/layers/ 文件夹中增加该layer的类的声明.h文件,直接将欧式距离的hpp文件euclidean_loss_layer.h复制,命名为whole_loss_layer.h,然后打开文件,将euclidean替换为whole,注意大小写。
3)在./src/caffe/layers/目录下新建.cpp和.cu文件,进行类实现。也是复制,然后改文件名,替换文件中的euclidean,注意大小写。
4)在./src/caffe/gtest/中增加layer的测试代码,对所写的layer前传和反传进行测试,测试还包括速度。
最后一步很多人省了,或者没意识到,但是为保证代码正确,建议还是严格进行测试,磨刀不误砍柴功。
(二)编译
make all -j 8
(三)测试
找一个工程代码,将代码中的network定义文件中的euclidean_loss_layer层换为whole_loss_layer层

注意:一定要注意细节,大小写

猜你喜欢

转载自blog.csdn.net/ziyouyi111/article/details/80819693
今日推荐