深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现

深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现
Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition
PDF: https://arxiv.org/pdf/2211.11943.pdf
PyTorch代码: https://github.com/shanglianlm0525/CvPytorch
PyTorch代码: https://github.com/shanglianlm0525/PyTorch-Networks

1 概述

通过组合ConvNet与ViT的设计理念,本文利用卷积调制操作对自注意力进行了简化,进而构建了一种新的ConvNet架构Conv2Former。
深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现_第1张图片
ImageNet分类、COCO检测以及ADE20K分割任务上的实验结果表明:所提Conv2Former取得了优于主流ConvNet(如ConvNeXt)、ViT(如Swin Transformer)的性能

2 Conv2Former

Conv2Former采用金字塔架构,即包含四个阶段、四种不同尺寸的特征,相邻阶段之间通过Patch Embedding模块(其实就是一个卷积核与stride均为2的卷积)降低特征空间分辨率。
深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现_第2张图片
下表给出了不同大小Conv2Former的超参配置:
深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现_第3张图片

2-1 Convolutional Modulation Block

从经典的残差模块到自注意力模块,再到新一代卷积模块。
深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现_第4张图片
自注意力模块可以表示为如下形式:
在这里插入图片描述
其中 A A A 可以更好的编码空域相关性,但其计算复杂性随N而爆炸性增长。
在这里插入图片描述
Convolutional Modulation Block 采用卷积特征对 V V V 进行调制
深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现_第5张图片
其中 ⊙ \odot 表示Hadamard乘积。Convolutional Modulation Block使得每个位置的元素与其近邻相关,而通道间的信息聚合则可以通过线性层实现。

PyTorch代码:

class ConvMod(nn.Module):
    def __init__(self, dim):
        super().__init__()
        self.norm = LayerNorm(dim, eps=1e-6)
        self.a = nn.Sequential(
            nn.Conv2d(dim, dim, 1),
            nn.GELU(),
            nn.Conv2d(dim, dim, 11, padding=5, groups=dim)
        )
        self.v = nn.Conv2d(dim, dim, 1)
        self.proj = nn.Conv2d(dim, dim, 1)
    
    def forward(self, x):
        B, C, H, W = x.shape
        x = self.norm(x)
        a = self.a(x)
        v = self.v(x)
        x = a * v
        x = self.proj(x)
        return x

微观设计理念:

  • 采用 11x11 的大卷积核
  • 在Hadamard乘积之前并未添加任务规范化层(如Sigmoid, L p L_{p} Lp)
  • Normalization 采用了Layer Normalization
  • Activations 采用了GELU

3 Experiments

深度学习论文: Conv2Former: A Simple Transformer-Style ConvNet for Visual Recognition及其PyTorch实现_第6张图片

你可能感兴趣的:(Paper,Reading,Deep,Learning,pytorch,深度学习,pytorch,transformer)