rs发展历程1
rs发展历程2

阅读全文 »

pixelshuffle#

上采样可以理解为在同一个位置,原来只是以1:1的比例提取信息,而现在以1:4的比例提取信息,提取信息的频率更高了,所以能反映的细节也就更多。对于tensor来说,在同一个位置多提取信息,也就是通过卷积生成通道数更多的tensor。具体过程为(以一个(n,64,64,64)的特征图为例)

  1. 通过卷积,得到通道数倍增的特征图(n,64,64,256)
  2. 将特征图切割成若干份,对每一份(n,64,64,4)的像素点进行重新排列,reshape成(n,64,64,2,2),再reshape成(n,64,2,64,2),最后reshape成(n,128,128,1),再把这么多份拼接起来,得(n,128,128,64)的特征图

image-20210906161758378

image-20210906161922868

upsample#

插值方法

转置卷积(ConvTranspose2d)#

填充0后做卷积

参考资料#

(19条消息) 上采样方法大PK(Upsample,Interpolate,resize,Transposed convolution,deconv,Unpool,Pixelshuffle)_年轻即出发,-CSDN博客

上采样,上池化,反卷积 - OliYoung - 博客园 (cnblogs.com)

PixelShuffler原理学习笔记 - 程序员大本营 (pianshen.com)

pytorch中的上采样(上采样,转置卷积,上池化,PixelShuffle) - 那抹阳光1994 - 博客园 (cnblogs.com)

LN:Layer Normalization,LN是“横”着来的,对一个样本,不同的神经元neuron间做归一化。

BN:Batch Normalization,BN是“竖”着来的,各个维度做归一化,所以与batch size有关系。

image-20210906155404860

优点:Bactch Normalization通过标准化让激活函数分布在线性区间,结果就是加大了梯度,让模型更大胆的进行梯度下降,具有如下优点:

  • 加大搜索的步长,加快收敛的速度;
  • 更容易跳出局部最小值;
  • 破坏原来的数据分布,一定程度上缓解了过拟合

缺陷如下:

1、BN是在batch size样本上各个维度做标准化的,所以size越大肯定越能得出合理的μ和σ来做标准化,因此BN比较依赖size的大小。
2、在训练的时候,是分批量进行填入模型的,但是在预测的时候,如果只有一个样本或者很少量的样本来做inference,这个时候用BN显然偏差很大,例如在线学习场景。
3、RNN是一个动态的网络,也就是size是变化的,可大可小,造成多样本维度都没法对齐,所以不适合用BN。

LN带来的优势:

1、Layer Normalization是每个样本内部做标准化,跟size没关系,不受其影响。
2、RNN中LN也不受影响,内部自己做标准化,所以LN的应用面更广。

  • BatchNorm:batch方向做归一化,计算NHW的均值
  • LayerNorm:channel方向做归一化,计算CHW的均值
  • InstanceNorm:一个channel内做归一化,计算H*W的均值
  • GroupNorm:先将channel方向分group,然后每个group内做归一化,计算(C//G)HW的均值

WN#

image-20210906155830408

image-20210906155845338

归一化操作#

image-20210906160001983

参考资料#

https://www.cnblogs.com/gczr/p/12597344.html

详解深度学习中的Normalization,BN/LN/WN - 知乎 (zhihu.com)

为什么要做特征归一化/标准化? - shine-lee - 博客园 (cnblogs.com)

深度可分离卷积

假设输入是$D_{f^i} * D_{f^i} * M$ ,输出图大小是$D_{f^o}*D_{f^o}N$, 卷积核大小是$D_kD_k$

普通卷积操作

输入图在经过卷积核($D_kD_kM$)后输出为目标输出大小,但此时仅为$D_{f^o}*D_{f^o} * 1$ ,需要$N$个这样的操作才能得到目标特征图。

此时所需要的计算量有$D_{f^o}D_{f^o}D_kD_kM*N$。

阅读全文 »

Welcome to my blog, enter password to read.
阅读全文 »

参考资料#

MMDetection 2.5 目标检测(3):配置修改 - 简书 (jianshu.com)

mmdetection源码分析faster-rcnn,读懂mmdetection - 知乎 (zhihu.com)

将自己数据集转化成voc数据集格式并用mmdetection训练 - 简书 (jianshu.com)

(29条消息) (详细教程)mmdetection训练自己的模型,测试,评估_若风的博客-CSDN博客

(29条消息) 【MMDetection-学习记录】 训练自己的VOC数据集_乐亦亦乐的博客-CSDN博客

MMDetection v2.0 训练自己的数据集 - 知乎 (zhihu.com)

mmdetection 模型训练

mmdetection源码解读(一) - 知乎 (zhihu.com)

环境配置

第一步:安装YOLOX

1
2
3
4
git clone git@github.com:Megvii-BaseDetection/YOLOX.git
cd YOLOX
pip3 install -U pip && pip3 install -r requirements.txt
pip3 install -v -e . # or python3 setup.py develop
阅读全文 »