OctaveConv_pytorch通道注意力清单:SENet、ECA-Net与SRM三种实现一网打尽
OctaveConv_pytorch通道注意力清单SENet、ECA-Net与SRM三种实现一网打尽【免费下载链接】OctaveConv_pytorchPytorch implementation of newly added convolution项目地址: https://gitcode.com/gh_mirrors/oc/OctaveConv_pytorchOctaveConv_pytorch 是一个 PyTorch 卷积算子实现库Beyond Convolution除了经典的 OctaveConv它还内置了SENet、ECA-Net、SRM 三种通道注意力模块的 ResNet 完整实现并配套了 ImageNet 训练脚本非常适合想快速上手通道注意力机制的初学者。上图是项目中最核心的 OctaveConv 结构将特征分为高低频两组处理。而通道注意力则解决另一个问题让网络学会哪些通道更重要把有限的计算力集中在有效特征上。三种通道注意力模块速览 模块注意力原理参数开销可选 ResNet 型号源码文件SENet全局平均池化 两层全连接学习通道间依赖中等se_resnet18/34/50/101/152libs/nn/resnet_se.pyECA-Net一维卷积直接建模通道邻域关系不降维极低近零eca_resnet50/101/152libs/nn/resnet_eca.pySRM风格池化均值标准差 可学习风格融合极低srm_resnet18/34/50/101/152、srm_resnext50_32x4d、srm_resnext101_32x8dlibs/nn/resnet_srm.py三者都采用即插即用方式嵌入 ResNet 残差块在 block 最后一个卷积 BN 之后、残差相加之前插一个注意力层输出为逐通道的加权系数0~1与特征图逐元素相乘。SENet 通道注意力最经典的两层全连接实现SENetSqueeze-and-Excitation是通道注意力开山之作SELayer 的流程非常直观压缩Squeeze用AdaptiveAvgPool2d(1)把每张特征图压成一个数得到通道描述向量激励Excitation两层全连接 ReLU Sigmoid学习各通道的重要性权重重标定权重乘回原特征图。在 resnet_se.py 中可以看到self.se被插入在BasicBlock的bn2之后文件末尾 L179-L223 提供了从 ResNet18 到 ResNet152 的完整工厂函数。ECA-Net 高效通道注意力用一维卷积替代全连接SENet 的先降维再升维会丢失通道间的位置关系而 eca_layer 用一段一维卷积直接在通道维上建模邻域信息不压缩通道数避免信息损失卷积核大小随通道数自适应本实现默认k_size3几乎不增加参数量推理速度提升明显是轻量级部署场景的首选。该模块同样被插在残差块的bn2/bn3之后见 L59-L70eca_resnet50 等工厂函数 可直接调用。SRM 风格重校准感知整幅图像风格的通道注意力SRMStyle-based Recalibration Module的独到之处在于它关注的是图像风格如光照、纹理分布而不仅是通道激活风格池化对每个通道计算均值和标准差拼成C×2的风格特征风格融合与可学习参数cfcC×2相乘求和再经过 BN 和 Sigmoid 得到逐通道权重重标定输出权重乘回输入张量自适应地调整特征。完整逻辑见 SRMLayer其中cfc、bn.weight、bn.bias被标记为srm_param以便差异化学习率。注意它的插入位置略有不同——在残差相加之前L135-L146。工厂函数 额外提供了 ResNeXt 版本。快速上手三种模型一键切换 所有模型都通过 libs/nn/__init__.py 统一导出注册进 main_imagenet.py 的模型表。本地推理只需三行from libs.nn import se_resnet50, eca_resnet50, srm_resnet50 model eca_resnet50().cuda()训练时通过-a参数切换架构即可例如python main_imagenet.py -a srm_resnet50 --data ImageNet目录 --epochs 120项目附带了可直接参考的分布式训练模板 exp/train_val_step_se_resnet50.sh8 卡、120 epoch、30/60/90 衰减、5 epoch 热启动照抄参数结构换成其它-a模型名就能跑。环境依赖见 requirement.txttorch、torchvision、apex。如何选择一张表帮你决策 ✅求稳、可复现论文基线→se_resnet50论文对照最方便追求低开销、移动端/实时场景→eca_resnet50参数几乎为零数据存在明显风格差异光照/场景漂移→srm_resnet50按风格自适应重标定想对比注意力收益→ 用同一数据集分别训练三种模型test_speed.py可辅助评估前向速度以上就是 OctaveConv_pytorch 中三种通道注意力实现的全部要点SENet 经典、ECA 轻量、SRM 风格感知按需取用即可。【免费下载链接】OctaveConv_pytorchPytorch implementation of newly added convolution项目地址: https://gitcode.com/gh_mirrors/oc/OctaveConv_pytorch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考