0
点赞
收藏
分享

微信扫一扫

PyTorch深度学习(25)网络结构ConvNeXt

玉新行者 2022-04-02 阅读 81

ConvNeXt

论文地址:https://arxiv.org/abs/2201.03545

一、改进点

随着技术的不断发展,各种新的架构及优化策略促使Transformer拥有更好的效果
相同策略训练卷积神经网络

以ResNet-50为基准

1、Macro design

(1)Swin-T的比例是1:1:3:1  Swin-L的比例是1:1:9:1
堆叠次数由(3, 4, 6, 3)调整为(3, 3, 9, 3)
(2)最初的下采样模块为stem,例如ResNet中stem是7×7卷积核3×3最大池化组成
将ResNet中stem换成卷积核为4,stride为4的卷积层(参考swim-transformer)

2、ResNetXt

(1)使用group convolution
depthwise convolution组卷积的group数和输入层的channel数相等
depthwise convolution——对于每个通道输入图像,对应卷积核进行操作


(2)增大特征层的channel,将每个stage的channel设置与swin-transformer的channel保持一致

 

3、Inverted bottleneck

ResNet提出bottleneck结构(两头粗,中间细),MobileNetV2提出Inverted Bottleneck(两头细,中间粗)

4、Large Kerner size

(1)moving up depthwise conv layer,将depthwise conv模块上移
原:1×1 conv → depthwise conv → 1×1 conv
现:depthwise conv → 1×1 conv → 1×1 conv
原因:depthwise conv layer类似Multi-head attention
(2)Increasing the kernel size,将depthwise conv卷积核大小由3×3改成7×7 (7与Swin-Transformer的窗口大小一致)

5、Various layer-wise Micro designs

Replacing ReLU with GELU——准确率没有变化
Fewer activation functions   ——Swin Transformer Block仅在1×1卷积后有GELU
Fewer normalization layers
Substituting BN with LN       ——Transformer使用LN
Separate downsampling layers

二、网络结构图及每层数据

不同网络的参数

ConvNeXt-T: C=(96,   192,   384,   768),   B=(3, 3, 9, 3)

ConvNeXt-S: C=(96,   192,   384,   768),   B=(3, 3, 27, 3)

ConvNeXt-B: C=(128,  256,  512,   1024), B=(3, 3, 27, 3)

ConvNeXt-L:  C=(192, 384,  768,   1536),  B=(3, 3, 27, 3)

ConvNeXt-XL:C=(256, 512,  1024, 2048),  B=(3, 3, 27, 3)

ConvNeXt-T

  • 4×4, 96, stride 4
  • [d7×7, 96      1×1, 384      1×1, 192]  ×  3
  • [d7×7, 192    1×1, 768      1×1, 192]  ×  3
  • [d7×7, 384    1×1, 1536    1×1, 384]  ×  9
  • [d7×7, 768    1×1, 3072    1×1, 768]  ×  3

网络结构图

 

三、ConvNeXt网络代码

举报

相关推荐

0 条评论