0
点赞
收藏
分享

微信扫一扫

【论文笔记】MetaFormer/PoolFormer 论文笔记及体验

paper:MetaFormer is Actually What You Need for Vision

github:https://github.com/sail-sg/poolformer

aistudio:没有GPU?Tesla V100在线体验PoolFormer

Transformer已经证明在计算机视觉任务中有非常大的潜力,一种普遍的看法是基于attention的token mixer模块使transformer具有竞争力。但是将attention用spatial MLP替代后,模型仍然具有非常好的效果。那么是不是transformer的结构而不是attention使其有效呢?作者使用池化层代替transformer中的attention,构建了PoolFormer模型,取得了非常好的效果,ImageNet-1k准确率达到82.1%。证明了Transformer结构的有效性,而非attention。

一、引言

首先给出MetaFormer的定义,如下图所示,一个标准的transformer结构,Token Mixer可以是Attention/Spatial MLP等结构。

为了验证MetaFormer结构的有效性,作者提出了PoolFormer,使用非常简单的池化层来作为Token Mixer,并验证其有效性。

 二、网络结构

PoolFormer的网络结构非常简单,只需要把Transformer的Attention模块换成Pooling就可以。(惊呆了的操作,不需要参数、计算简单,竟然可以如此有效)

 Pooling代码如下(注意这里有个pool(x)-x):

class Pooling(nn.Module):
    """
    Implementation of pooling for PoolFormer
    --pool_size: pooling size
    """
    def __init__(self, pool_size=3):
        super().__init__()
        self.pool = nn.AvgPool2d(
            pool_size, stride=1, padding=pool_size//2, count_include_pad=False)

    def forward(self, x):
        return self.pool(x) - x

PoolFormer具体配置如下表:

 三、实验结果

PoolFormer在ImageNet-1k上的实验结果如下:

 四、总结

PoolFormer证明了Transformer结构的有效性,难以置信池化如此简单的设计竟然如此有效,跪了跪了。

举报

相关推荐

0 条评论