深度学习及mmdetection学习理解笔记

关于mmdet源码

mmdetection 的网络配置中, type参数都是实例化的类名, 后面的都是对于的类初始化参数

参考: MMCV 核心组件分析(五): Registry

详解 MMDetection 使用技巧和源码实现。

关于卷积

1x1 的layer用来减少或增加输入的特征的channel, 比如resnet 中残差结构中的第一层需要减少channel, 第三层增加channel, 有几个卷积核输出就有几个channel

3*3卷积 主要作用是减少网络参数, 增大有效感受野, 增加了局部上下文信息, 一般图像尺寸会减小

Resnet的理论及源码讲解

MMDetection Faster R-CNN 源码详解(一)

pytorch图像分类篇:6. ResNet网络结构详解与迁移学习简介

关于 FPN 的讲解

实际是对高低层的特征图进行融合, 然后在 目标检测网络中, 针对不同的特征层再进行 RPN(提出建议框)

参考: 1.1.2 FPN结构详解

特征融合中的拼接和相加

element-wise sum 即矩阵元素对位相加

concat 拼接一般是在 通道上channel 上拼接, 结果是通道数增加, 一般在后面需要再加上一层卷积以减少通道数, 但同时这增加了参数量以及计算量

注意力机制 SELayer 的理解 2017

Squeeze,Excitation,Scale为SENet模块主要构成,

Squeeze: 把H×W×C的矩阵压缩到了1×1×C,每个通道的信息都用该通道的全局平均池化值来表示

Excitation: 激活, 对通道建模, 全连接层->Relu激活->全连接层

Scale: 就是一个简单的加权操作, 在经过 Excitation第二个全连接层后得到的输出是经过 sigmoid激活的权重值

通过对通道进行加权,强调有效信息,抑制无效信息,注意力机制
是一种通道注意力

轻量级模块SENet与SKNet详解 SENet论文原文

ResNeSt

【论文笔记】张航和李沐等提出:ResNeSt: Split-Attention Networks(ResNet改进版本)

ResNeSt算法解析

论文原文PDF

消融研究

通常用于神经网络,尤其是相对复杂的神经网络,如R-CNN。我们的想法是通过删除部分网络并研究网络的性能来了解网络

DetectoRS

RFP 中 T 设置为 2, 相当于重新又进行了一次融合, 添加反馈连接到FPN。只对 Resnet 中每个stage中的第一个block

sac 提出了可形变空洞卷积, 相当于给卷积加了一个权重, 将所有 Resnet中的 3*3卷积 更换为 SAC了

DetectoRS论文解读

SyncBN与BN

BN 为批量归一化, 用于防止过拟合

BN 的性能和 batch size 有很大的关系。batch size 越大,BN 的统计量也会越准。然而像检测这样的任务,占用显存较高,一张显卡往往只能拿较少的图片(比如 2 张)来训练,这就导致 BN 的表现变差。一个解决方式是 SyncBN:所有卡共享同一个 BN,得到全局的统计量。

参考:PyTorch 源码解读之 BN & SyncBN:BN 与 多卡同步 BN 详解

注意力机制: CBAM 2018

CBAM包含通道注意力和 空间注意力, 如果在Resnet中添加, 可以在第一层和最后一层进行添加CBAM 注意力模块

可以直接加进去,输入输出均为相同维度尺寸,没有变化

2021年别人使用 CBAM 发的论文: 基于ResNet双注意力机制的遥感图像场景分类

参考: pytorch中加入注意力机制(CBAM),以ResNet为例。解析到底要不要用ImageNet预训练?如何加预训练参数? 原论文地址

注意力 DANet, 主要针对分割 2018-2019

原论文地址

基于注意力和 transformer 改进的 BoTNet 2021

一文读懂现在最新的BoTNet:超越经典,Transformer正在路上

将注意力机制引入ResNet,视觉领域涨点技巧来了!附使用方法

可形变卷积 DCNv2

论文原文

数据增强相关

Simple Copy-Paste 论文原文-2021

CutMix 论文原文-2019

epoch和iteration的区别

(1)batchsize:批大小。在深度学习中,一般采用SGD训练,即每次训练在训练集中取batchsize个样本训练;
(2)iteration:1个iteration等于使用batchsize个样本训练一次;一个迭代 = 一个正向通过+一个反向通过
(3)epoch:1个epoch等于使用训练集中的全部样本训练一次;一个epoch = 所有训练样本的一个正向传递和一个反向传递

举个例子,训练集有1000个样本,batchsize=10,那么:
训练完整个样本集需要:

100次iteration,1次epoch。

比如我训练gan, batch为 8, 图片数量为 331, 331/8=42, 所以 42个 iter== 1个epoch

300个epoch相当于 12,600个iter
100->4200
200->8400

参考: epoch和iteration的区别

mmdetection计算map,precision,Recall:
mmdetection训练自己的数据并评估mAP
訓練文件可視化, PR curve绘制, F1-score计算

mmdetection计算FPS:
mmdetection官方文档

单机使用命令示例:
python tools/analysis_tools/benchmark.py work_dirs/round1_cascade/cascade_rcnn_r50_fpn_1x_voc.py work_dirs/round1_cascade/latest.pth
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值