caffe 自定义层/添加自己的损失函数
来源:互联网 发布:网络软件工程师培训 编辑:程序博客网 时间:2024/05/22 22:32
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·壹:仰望星空与脚踏实地]
- caffe 自定义层/添加自己的损失函数
- caffe添加自己的层
- Caffe添加自定义的层
- caffe的损失函数
- caffe添加损失层PrecisionRecallLosslayer(一)
- 【Caffe实践】 添加自己的网络层
- 【Caffe实践】 添加自己的网络层
- Caffe 中添加自己的网络层
- caffe-windows添加自己的loss层
- caffe 加权交叉熵损失函数层(weighted sigmoid_cross_entropy_loss_layer)添加方法
- Caffe添加自定义层-自定义loss
- [转]caffe中添加C++的自定义新层
- caffe 损失函数
- caffe中的损失函数
- Caffe中的损失函数
- Caffe中的损失函数
- Caffe中损失层简介
- 在caffe中添加自定义层
- Mysql索引的使用
- 《SSH框架》---SSH框架与框架
- HDU1201 18岁生日【日期计算】
- eclipse 常用设置
- MySQL---多表操作(1对1、1对多、多对多)
- caffe 自定义层/添加自己的损失函数
- springMvc概念原理分析
- 从零开始,学习web前端之DOM和BOM
- Bootstrap-基本的标签
- js的基本数据
- 装饰者模式
- 关于if语句的嵌套
- 我的软件工程课目标
- HDU2016 A