OHEM在线难样例挖掘的两个细节

OHEM在线难样例挖掘的两个细节代码上如何实现Read-onlyLayer与R_hard-sel权限共享?https://github.com/abhi2610/ohem/blob/master/models/pascal_voc/VGG_CNN_M_1024/fast_rcnn_ohem/train.prototxt下面代码对应(a),前向传播过程##ReadonlyRoINetworklayer{…

大家好,又见面了,我是你们的朋友全栈君。

在这里插入图片描述
代码上如何实现Read-only Layer与R _hard-sel权限共享?
https://github.com/abhi2610/ohem/blob/master/models/pascal_voc/VGG_CNN_M_1024/fast_rcnn_ohem/train.prototxt
下面代码对应(a),前向传播过程

## Readonly RoI Network 
layer {
  name: "roi_pool5_readonly"
  type: "ROIPooling"
  bottom: "conv5"
  bottom: "rois"
  top: "pool5_readonly"
  propagate_down: false
  propagate_down: false
  roi_pooling_param {
    pooled_w: 6
    pooled_h: 6
    spatial_scale: 0.0625 # 1/16
  }
}

其中:propagate_down设置为false,可实现forward inference

下面代码对应(b),前向和反向传播过程

layer {
  name: "roi_pool5"
  type: "ROIPooling"
  bottom: "conv5"
  bottom: "rois_hard"
  top: "pool5"
  propagate_down: true
  propagate_down: false
  roi_pooling_param {
    pooled_w: 6
    pooled_h: 6
    spatial_scale: 0.0625 # 1/16
  }
}

其中:propagate_down设置为True,可实现前向和后向传播,减小难样例的损失,同时可以调整卷积层的参数

为什么要hard mining?

  • 1 减少fg和bg的ratio,而且不需要人为设计这个ratio
  • 2 加速收敛,减少显存需要这些硬件的条件依赖,原因是直接训练难样例,使损失最大的函数对应的样例经过训练后loss 直接减小
  • 3 hard-mining已经证实了是一种booststrapping的方式, 尤其当数据集较大而且较难的时候;
  • 4 eliminates several heuristics and hyperparameters in common use by automatically selecting hard examples, thus simplifying training。 放宽了定义negative example的bg_lo threshold,即从[0.1, 0.5)变化到[0, 0.5)。
    取消了正负样本在mini-batch里的ratio(原Fast-RCNN的ratio为1:3)

参考:https://blog.csdn.net/qq_36302589/article/details/84998509

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139299.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • golang []byte和string相互转换

    golang []byte和string相互转换测试例子:packagemainimport(“fmt”)funcmain(){str2:=”hello”data2:=[]byte(str2)fmt.Println(data2)str2=string(data2[:])fmt.Println(str2)}

    2022年6月17日
    23
  • java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda…

    java 拉姆达表达式_一看就懂之java8新特性函数式编程:我是拉姆达表达式lambda…我们都知道,java8之后增加了很多新特性,大大的简化了代码的编写、阅读的负担。先发个牢骚:今天up主根据自己的理解跟大家说说新特性之一的lambdaexpress(拉姆达表达式),每当看到新的语法改动,内心我都是拒绝的。因为又要学习、又要适应、又要改变真烦人,可是没办法现在这几乎是所有大厂必须的操作。总不能看不懂人家写的代码吧,做IT行业尤其是软件工程师必须要保证自己的知识及时更新、知识面不…

    2022年9月19日
    1
  • Qt中的QFile读写文件操作「建议收藏」

    Qt中的QFile读写文件操作「建议收藏」1.首先记录一下QString,QByteArray,char*之间的转换(1)QString->QByteArrayQStringbuf="123";QByteArraya=buf.toUtf8();//中文a=buf.toLocal8Bit();//本地编码(2)QByteArray->char*char*b=a.data…

    2022年6月13日
    153
  • apply方法 python_python min函数

    apply方法 python_python min函数Pythonapply函数的用法发布于2014-08-0721:02:24|674次阅读|评论:0|来源:网友投递Python编程语言Python是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各…

    2025年7月12日
    1
  • 在win10+Ubuntu双系统下,完美卸载Ubuntu

    在win10+Ubuntu双系统下,完美卸载Ubuntu背景机器:惠普暗影精灵3win10与Ubuntu均为UEFI分区清除ubuntu系统使用软件:diskgenius选择Ubuntu系统使用的几个分区,EFI分区也需要勾选若不确定Ubuntu系统分区,可通过【Windows+X】选择磁盘管理,通过分区大小进行对比判断我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点…

    2022年5月30日
    31
  • 半小时一篇文过完C语言基础知识点[通俗易懂]

    半小时一篇文过完C语言基础知识点[通俗易懂]本文定位读者为小白读者,将使用最快的方法学完C语言,并且制作一个学生管理系统。由于是速成的方法,本文不会描述过多的其它知识,大部分知识点只是描述了如何进行使用,如何深入还需要各位努力;不过学习过了一遍内容后,学习起来也会较为容易。环境:系统:windows7IDE:Devc面向读者:小白一、HelloWorldHelloWorld是经典的编程入门程序,指在编写代码生成程序,运行该程序将会在程序中显示HelloWorld。以下是一个HelloWorld的C语言代码:#include&

    2022年9月21日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号