论文题目:《SimAM: A Simple, Parameter-Free Attention Module for Convolutional Neural Networks》
YOLOX 官方源码:GitHub - Megvii-BaseDetection/YOLOX
YOLOX 网络解读参考:CSDN - Pytorch 搭建 YOLOX 目标检测平台
1. SimAM 简介
SimAM(Simple Attention Module)是一种轻量级的注意力机制,旨在增强神经网络的表示能力,而不会显著增加计算开销。它通过对特征图进行自适应加权,来提高网络对关键特征的关注度。
SimAM 的基本思想是使用一个简单的模块来捕捉特征图中的重要信息。与其他复杂的注意力机制(如 SE 模块、CBAM 等)相比,SimAM 通过引入一个自适应加权机制,实现了高效的特征增强。
SimAM 的优点:
- 计算开销低: SimAM 不引入额外的卷积层或全连接层,计算量相对较低。
- 易于实现: SimAM 的实现相对简单,可以很容易地嵌入到现有的卷积神经网络中。
- 有效性: 实验表明,SimAM 在提高网络性能方面表现出色,能够显著提高图像分类、目标检测等任务的准确性。
2. 项目环境
- 解释器:3.9.19
- 框架:Pytorch 2.0.0 + CUDA 11.8
- 系统:Win10 / Ubuntu 20.04
3. 核心代码
import torch
import torch.nn as nn
__all__ = ['SimAM']
class SimAM(torch.nn.Module):
def __init__(self, channels=None, e_lambda=1e-4):
super(SimAM, self).__init__()