Day 42 通道注意力
浙大疏锦行CNN 有很多卷积核输出很多通道特征图有的通道很重要比如边缘、纹理有的通道没用通道注意力就是自动给每个通道算一个权重重要的通道权重变大不重要的变小SE 通道注意力Squeeze-and-Excitation是最常用、最简单、效果最好的通道注意力。结构只有 3 步Squeeze压缩对每个通道做全局平均池化 → 得到 1×1×CExcitation激励两层全连接 Sigmoid → 得到每个通道的权重Scale缩放权重 × 原特征 → 强化重要通道import torch import torch.nn as nn import torch.nn.functional as F # 通道注意力SE Block class SEBlock(nn.Module): def __init__(self, in_channels, reduction16): super(SEBlock, self).__init__() # 1. 全局平均池化 → (B, C, 1, 1) self.avg_pool nn.AdaptiveAvgPool2d(1) # 2. 两层全连接学习通道权重 self.fc nn.Sequential( nn.Linear(in_channels, in_channels // reduction), nn.ReLU(inplaceTrue), nn.Linear(in_channels // reduction, in_channels), nn.Sigmoid() ) def forward(self, x): batch, C, H, W x.size() # Squeeze out self.avg_pool).view(batch, C) # Excitation weight self.fc(out).view(batch, C, 1, 1) # 原特征 × 权重 return x * weight通道注意力的好处几乎不增加计算量即插即用所有 CNN 都能加分类、检测、分割全都能涨点配合ResNet、MobileNet、自己的小 CNN 都极强
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2410327.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!