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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • recvfrom函数

    recvfrom函数RECV(2) LinuxProgrammer’sManual RECV(2)NAMErecv,recvfrom,recvmsg-receiveamessagefromasocketSYNOPSIS#include<sys/types.h>#include<sys/socket.h>ssize_trecv(intsockfd,void*buf,size_tlen,intflags);

    2022年7月23日
    26
  • Java 二维数组转换成List<List<String>>[通俗易懂]

    Java 二维数组转换成List<List<String>>[通俗易懂]在拿到二维数组的数据时,需要将它转换成嵌套的list,如下工具类:importjava.util.ArrayList;importjava.util.List;/***将二维数组转换成List>形式工具**@authorqiulinhe**2017年3月1日下午3:09:52*/publicclassArrayToListTe

    2022年6月20日
    193
  • linux系统抓包工具_kali 抓包

    linux系统抓包工具_kali 抓包在使用ECS服务器时,发现网络流量异常,或者发现服务器有异常向外发包行为,可使用抓包工具抓取网络流量包,分析流量包的特征,看看这些流量包来自哪里,或者发向哪里了。根据这些信息,可进一步诊断异常。本文介绍Linux系统,使用tcpdump工具分析流量的方法。TcpDump可将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、not、or等逻…

    2022年8月21日
    5
  • 利用Pytorch torchvision完成Faster-rcnn目标检测demo及源码详解

    利用Pytorch torchvision完成Faster-rcnn目标检测demo及源码详解Torchvision更新到0.3.0后支持了更多的功能,其中新增模块detection中实现了整个faster-rcnn的功能。本博客主要讲述如何通过torchvision和pytorch使用faster-rcnn,并提供一个demo和对应代码及解析注释。目录如果你不想深入了解原理和训练,只想用Faster-rcnn做目标检测任务的demo,请看这里torchvision中Faste…

    2022年6月24日
    24
  • 贪心算法之背包问题

    贪心算法之背包问题

    2021年9月10日
    68
  • linux下的C语言编程(总结篇)

    linux下的C语言编程(总结篇)【声明:版权所有,欢迎转载,请勿用于商业用途。联系信箱:feixiaoxing@163.com】在Linux下面关于C语言的内容其实挺多的。不同的人关注的地方也不一样。关注系统设计的人可能更关注整个linux系统的结构;设计驱动的人可能更关注linux驱动的配置和实现;而我在这里所关注的只是linux应用层方面的内容,属于最基础的内容,当然也是最重要的内容。实际上对应于………

    2022年7月26日
    6

发表回复

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

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