版权声明:本文为博主原创文章,转载请注明出处,谢谢。    https://blog.csdn.net/wfei101/article/details/79477542
原代码见: 
https://github.com/chuanqi305/FocalLoss

1,caffe.proto 
源文件在src/caffe/proto/目录里 
从492行这些optional里,作者添加了两行:

optional ReLU6Parameter relu6_param = 208;
optional FocalLossParameter focal_loss_param = 147;
从895行这里添加了一行:

optional bool half_pad = 19 [default = false];
从1425行这里添加一行:

optional bool reduce_boxes = 14 [default = false];
从1505行添加了一段:

message ReLU6Parameter{
    enum Engine {
        DEFAULT = 0;
        CAFEE = 1;
        CUDNN = 2;
    }
    optional Engine engine = 2[default = DEFAULT];
}
从1641行添加一段:

message FocalLossParameter{
    enum Engine{
        DEFAULT = 0;
        CAFFE = 1;
        CUDNN = 2;
    }
    optional Engine engine = 1[default = DEFAULT];
 
    //The axis along which to perform the softmax -- may be negative to index
    //from the end(e.g., -1 for the last axis).
    //Any other axes will be evaluated as independent softmaxes.
    optional int32 axis = 2[default = 1];
    optional float alpha = 3[default = 0.25];
    optional float gamma = 4[default = 2.0];
}
2.在src/caffe/layers/下放入focal_loss_layer.cpp和focal_loss_layer.cu文件

3.在include/caffe/layers/下放入focla_loss_layer.hpp和multibox_focal_loss_layer.hpp

4. 修改prototxt:只需要修改一下层名

layer {
  name: "mbox_loss"
  type: "MultiBoxFocalLoss" #change the type
  bottom: "mbox_loc"
  bottom: "mbox_conf"
  bottom: "mbox_priorbox"
  bottom: "label"
  top: "mbox_loss"
  include {
    phase: TRAIN
  }
  propagate_down: true
  propagate_down: true
  propagate_down: false
  propagate_down: false
  loss_param {
    normalization: VALID
  }
  focal_loss_param { #set the alpha and gamma, default is alpha=0.25, gamma=2.0
    alpha: 0.25
    gamma: 2.0
  }
  multibox_loss_param {
    loc_loss_type: SMOOTH_L1
    conf_loss_type: SOFTMAX
    loc_weight: 1.0
    num_classes: 2
    share_location: true
    match_type: PER_PREDICTION
    overlap_threshold: 0.5
    use_prior_for_matching: true
    background_label_id: 0
    use_difficult_gt: true
    neg_pos_ratio: 3.0
    neg_overlap: 0.5
    code_type: CENTER_SIZE
    ignore_cross_boundary_bbox: false
    mining_type: NONE #do not use OHEM
  }
}
重新编译Caffe
--------------------- 
作者:BigCowPeking 
来源:CSDN 
原文:https://blog.csdn.net/wfei101/article/details/79477542 
版权声明:本文为博主原创文章,转载请附上博文链接!

caffe添加层:Focal Loss的caffe实现相关推荐

  1. 损失函数:Focal Loss

    一.正负样本不均衡问题 Class Imbalance(正负样本不平衡) 带来的问题就是:样本中会存在大量的easy examples,且都是负样本(属于背景的样本).这样,easy negative ...

  2. 在caffe中添加新层 L1 Loss layer

    本文地址:http://blog.csdn.net/ismarvellous/article/details/79069661,转载请注明出处. 本文涉及的所有完整文件可在我的github下载. 1. ...

  3. 如何给20151230版caffe添加新的层 (一)

    由于caffe在一步一步的更新,因此半年前的教程可能不适用于当前版的caffe 因此把这次尝试caffe修改过程记录下来,以饷后人. 首先下载caffe https://github.com/yjxi ...

  4. 学习Caffe(二)使用Caffe:Caffe加载模型+Caffe添加新层+Caffe finetune

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u014230646/article/details/51934150 如何使用Caffe Caffe ...

  5. Caffe 激励层(Activation)分析

    Caffe_Activation 一般来说,激励层的输入输出尺寸一致,为非线性函数,完成非线性映射,从而能够拟合更为复杂的函数表达式激励层都派生于NeuronLayer: class XXXlayer ...

  6. caffe常见层及其prototxt设置

    输入: Convolution: layer {name: ""type: "Convolution"bottom: ""top: &quo ...

  7. Caffe Vision 层 - 卷积层 ConvLayer

    Caffe Vision 层 - 卷积层 ConvLayer Caffe 的视觉层一般采用 images 作为输入,输出另一种 images. 也可以是其它类型的数据和维度. images 可以是单通 ...

  8. caffe自定义层:imagedata层实现多标签

    简介注意一下caffe的版本,我用的是最新版本的 我们都知道ImageDataLayer是直接读取原图进行分类,它的label是单label,文件格式如下 train.txt示例 001.jpg 1 ...

  9. 无痛涨点!大白话讲解 Generalized Focal Loss

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨李翔 来源丨https://zhuanlan.zhihu.c ...

最新文章

  1. Java、Android静态代理与动态代理
  2. 我做的4周岁儿童编程课程【视频】分享
  3. mysql8 修改密码_sysbench压测软件连接mysql8失败案例分析
  4. NYOJ 49 开心的小明
  5. [攻防世界 pwn]——when_did_you_born
  6. ch6 列表和导航条
  7. 一个详尽的面向 SAP UI5 初学者的教程 - 如何在 SAP UI5 中绘制图表 Chart
  8. 计算机网络【0】概述
  9. Opencv中的Laplacian(拉普拉斯算法)
  10. 【神经网络】给初学者们讲解人工神经网络(ANN)
  11. CentOS之安装docker
  12. linux 结束8080端口,记Tomcat在Linux环境下开机启动无法监听8080端口
  13. 超链接的其他用法,复合选择器
  14. 了解new一个对象具体过程
  15. SOLIDWORKS Composer制作动画的方法
  16. 传统文化千千问重磅来袭!边玩边学,答题赢Kindle、全年免单大奖!——心田花开
  17. 网站建设中百度快照劫持是什么?劫持百度快照是怎么回事?
  18. 联想电脑如何改w ndows更新,电脑是否能升级到Windows 8.1 及支持Windows 8.1系统的机型汇总...
  19. Valheim英灵神殿服务器搭建指南 个人记录及踩坑
  20. 多组输入与单组输入的区分

热门文章

  1. boost::statechart模块无效图表测试
  2. 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
  3. boost::safe_numerics模块实现数据类型下溢的测试程序
  4. boost::hana::transform用法的测试程序
  5. boost::describe模块实现pp_call的测试程序
  6. VTK:模型之MarchingSquares
  7. VTK:图片之StaticImage
  8. VTK:图片之PickPixel2
  9. VTK:图片之ImageCityBlockDistance
  10. OpenGL CPU射线行进