《ResNeSt: Split-Attention Networks》阅读笔记

ResNeSt是基于ResNet的改进变体,通过Split-Attention块实现了跨通道的注意力分散,提高了图像分类、对象检测、语义分割等任务的性能。Split-Attention块将特征图分为多个组和子组,通过加权组合实现跨组的关注。ResNeSt模型在ImageNet上表现出色,同时在下游任务如MS-COCO和ADE20K上也有显著提升,显示了其通用性与计算效率。
摘要由CSDN通过智能技术生成

目录

一、论文

二、阅读资料

三、网络对比

四、代码

五、论文部分翻译


一、论文

《ResNeSt: Split-Attention Networks》

二、阅读资料

关于ResNeSt的点滴疑惑      

ResNet最强改进版来了!ResNeSt:Split-Attention Networks

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

三、网络对比

1、SE块

简单地说,把特征图经过卷积操作变为1x1xC大小,当做权重乘到每张特征图上,以起到特征增强的目的。

2、SK块

简单地说,经过不同的卷积操作,生成大小相同的特征图,然后进行add合并操作,不改变大小,经过卷积操作生成权重,分别乘到两个特征图中,在合并,整个块不改变通道数和大小。得到更加丰富的特征。当然,其中的Split中卷积操作使用分组卷积效果更好。

3、ResNeXt块

多分支,但使用了组卷积。

4、ResNeSt

右边图:基数组内的注意力分散。 为了简化图中的可视化,我们在该图中使用c = C/K。

可能现在看起来,大概是一个SK块只分了两路,且就是多个SK块连接起来就构成的SK-Net,但是ResNeSt中分了K个组,每个组又分了r路,增加了网络的宽度。将输入分为K个,每一个记为Cardinal1-k ,然后又将每个Cardinal拆分成R个,每一个记为Split1-r,所以总共有G=KR个组

四、代码

"""Split-Attention"""

import torch
from torch import nn
import torch.nn.functional as F
from torch.nn import Conv2d, Module, Linear, BatchNorm2d, ReLU
from torch.nn.modules.utils import _pair

__all__ = ['SplAtConv2d']

class SplAtConv2d(Module):
    """Split-Attention Conv2d
    """
    def __init__(self, in_channels, channels, kernel_size, stride=(1, 1), padding=(0, 0),
                 dilation=(1, 1), groups=1, bias=True,
                 radix=2, reduction_factor=4,
                 rectify=False, rectify_avg=False, norm_layer=None,
                 dropblock_prob=0.0, **kwargs):
        super(SplAtConv2d, self).__init__()
        padding = _pair(padding)
        self.rectify = rectify and (padding[0] > 0 or padding[1] > 0)
        self.rectify_avg = rectify_avg
        inter_channels = max(in_channels*radix//reduction_factor, 32)
        self.radix = radix
        self.cardinality = groups
        self.channels = channels
        self.dropblock_prob = dropblock_prob
        if self.rectify:
            from rfconv import RFConv2d
            self.conv = RFConv2d(in_channels, channels*radix, kernel_size, stride, padding, dilation,
                                 groups=groups*radix, bias=bias, average_mode=rectify_avg, **kwargs)
        else:
            self.conv = Conv2d(in_channels, channels*radix, kernel_size, stride, padding, dilation,
                               groups=groups*radix, bias=bias, **kwargs)
        self.use_bn = norm_layer is not None
        if self.use_bn:
            self.bn0 = norm_layer(channels*radix)
        self.relu = ReLU(inplace=True)
        self.fc1 = Conv2d(channels, inter_channels, 1, groups=self.cardinality)
   
### 回答1: resnest: split-attention networks是一种基于注意力机制的神经网络模型,它可以在处理多个输入时分别关注每个输入的不同部分,从而提高模型的准确性和效率。该模型可以应用于图像分类、目标检测等任务中。 ### 回答2: ResNeSt是一种用于图像分类的卷积神经网络模型,它采用了一种称为Split-Attention的注意力分离机制。 Split-Attention网络是一种通过分离学习空间信息和通道信息来提高分类性能的方法。在ResNeSt中,它被应用于每个基本构建块的设计中。 在传统的ResNet网络中,卷积层的输入是通过单一的注意力机制处理的,该机制将学习空间信息和通道信息作为一个整体进行处理。然而,这种处理方式可能导致空间和通道信息之间的冲突和干扰。 为了解决这个问题,ResNeSt引入了Split-Attention机制。该机制通过将输入特征分成多个部分,并分别对这些部分进行处理,以增强网络对空间和通道信息的理解和表示能力。 具体来说,Split-Attention网络首先将输入特征分成多个部分,每个部分都包含一定数量的通道。对于每个部分,它使用一个1x1卷积层来学习通道信息,以提取每个通道的重要性。然后,它使用一个全局平均池化层来学习空间信息,以捕捉特征图中不同区域的重要性。最后,它利用通道和空间信息之间的关系来生成最终的特征表示。 通过这种注意力分离机制,Split-Attention网络能够更好地提取和组合空间和通道信息,从而提高了图像分类任务的性能。在实验中,ResNeSt在一系列的图像分类数据集上都表现出了优秀的性能,证明了Split-Attention网络的有效性。 ### 回答3: resnest是一种新型的深度神经网络结构,它主要关注解决多任务学习中的注意力分割问题。在传统的深度神经网络中,通常将注意力放在一个任务上,而将其他任务的信息忽略掉。这种方式可能导致模型在多任务学习中的性能下降。resnest通过引入split-attention机制来解决这个问题。 split-attention网络通过将注意力分割并分配给每个任务,实现同时关注多个任务的效果。具体来说,它使用了两个关键组件:group convolution和cross-feature aggregation。 首先,group convolution是指将输入的特征图分成多个组并进行卷积操作。每一个组的特征图代表一个任务的信息。通过这种方式,不同任务的特征图可以在不同的组中进行交互,提高了每个任务的表示能力。 其次,cross-feature aggregation是指对不同任务的特征图进行聚合。它利用每个任务的特征图来生成一个注意力图,然后使用这个注意力图来调整其他任务的特征图表示,以强化它们之间的关联性。 通过这两个组件的协同作用,resnest可以同时考虑多个任务的信息,从而提高多任务学习的性能。与传统的单一注意力机制相比,resnest显著改善了多任务学习的能力,同时也能减少网络参数和计算代价。 总结起来,resnest: split-attention networks通过引入split-attention机制来解决多任务学习中的注意力分割问题,通过group convolution和cross-feature aggregation实现了对多个任务信息的同时关注。这种网络结构在多任务学习中具有潜力,并具有较高的性能和效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值