caffe 自定义层添加自己的损失函数

    xiaoxiao2021-03-25  82

    caffe 自定义层有两种方式:一个是通过python层,另外就是修改源代码的方式。

    自定义激活层

    文献[2] 以循序渐进的学习方式先后介绍了: google protocol buffe , Blob ,SyncedMemory ,shared_ptr ,layer,data layer 然后利用这些知识来自定义一个层。

    其给出的例子是定义一个power层,可以通过caffe的api参考其结构:

    http://caffe.berkeleyvision.org/doxygen/classcaffe_1_1PowerLayer.html

    其继承了神经元层(激活层)。

    自定义损失函数

    文献[3]给出了自定义损失函数:TripletLoss 我们通过caffe的api参考一般损失函数的结构。

    损失层的继承结构:

    SoftmaxWithLossLayer 层的继承关系:

    步骤 Only for CPU, window:

    以下内容来自:https://github.com/BVLC/caffe/pull/3123

    编辑:

    E:\caffe-windows-lib\src\caffe\proto\caffe.proto

    添加 TripletLossParameter,后面的147根据自己的caffe.proto说明,下一个ID应该是多少:

    optional WindowDataParameter window_data_param = 129; + optional TripletLossParameter triplet_loss_param = 147; message TripletLossParameter { //margin for negative triplet optional float margin = 1 [default = 1.0]; optional uint32 losstype = 2 [default = 1]; optional uint32 num_negatives = 3 [default = 3]; optional uint32 use_pair = 4 [default = 0]; }

    将 triplet_loss_layer.hpp,triplet_loss_layer.cpp为了和源代码统一分别拷贝到E:\caffe-windows\include\caffe\layers\ 和E:\caffe-windows\src\caffe\layers\目录下,然后添加到caffe工程。重新编译即可。

    运行和测试网络:

    因为没有:3D model from PASCAL3D+ or faces in MultiPIE。而我们只是想测试一下网络,学习一下其添加新层的思想。我们使用两个AR数据集。关于实验的所有数据集以及triplet_loss_layer的代码都在下面的百度链接中:

    链接:http://pan.baidu.com/s/1mhVh7za 密码:drtm

    参考文献: 1 https://github.com/BVLC/caffe/wiki/Development#developing-new-layers [官网 Developing new layers] 2.http://blog.csdn.net/u011104550/article/details/51592626 [caffe源码学习(六) 自定义层] 3. http://blog.csdn.net/u014696921/article/details/52278655 [caffe添加损失层PrecisionRecallLosslayer(一)] 4. http://www.cnblogs.com/louyihang-loves-baiyan/p/5260863.html [Caffe 单独测试添加的layer] 5. http://blog.csdn.net/u011070171/article/details/52160224 [caffe 更改源码,使得输入数据为多个标签] 6. http://blog.csdn.net/thesby/article/details/50822250 [如何在caffe中自定义网络层] 7. http://blog.csdn.net/u012177034/article/details/52144325 [Caffe学习(六)损失层及其参数设置] 8. http://blog.csdn.net/kuaitoukid/article/details/41865803 [如何在caffe中添加新的Layer] 9. http://www.cnblogs.com/neopenx/p/5187586.html [从零开始山寨Caffe·壹:仰望星空与脚踏实地]

    转载请注明原文地址: https://ju.6miu.com/read-32320.html

    最新回复(0)