80 parameters to make ResNet50 pay attention
This CVPR 2020 channel attention module replaces Squeeze-and-Excitation’s fully-connected layers with a fast 1D convolution, adding negligible overhead to ResNet and MobileNetV2 backbones.

What it does
ECA-Net is a drop-in channel attention module for deep convolutional networks. It reweights feature maps to improve image classification, object detection, and instance segmentation without significantly increasing model size. The repository provides PyTorch implementations and pre-trained weights for ResNet and MobileNetV2 backbones, plus detection heads including Faster R-CNN, Mask R-CNN, and RetinaNet.
The interesting bit
Instead of the two fully-connected layers used in Squeeze-and-Excitation blocks, ECA applies a single 1D convolution with a kernel size chosen adaptively from the channel count. The authors argue this avoids harmful dimensionality reduction and keeps the overhead to just 80 extra parameters and 4.7e-4 GFLOPs against a ResNet50 backbone.
Key highlights
- Adds only 80 parameters and 4.7e-4 GFLOPs to a ResNet50 backbone according to the README
- Achieves over 2% Top-1 accuracy improvement on ImageNet compared to baseline networks
- Ships pre-trained models for ResNet-18/34/50/101/152 and MobileNetV2, plus COCO detection and segmentation variants
- Adaptive kernel sizing removes the need to manually tune the 1D convolution window
- Direct download links provided via Baidu Drive and Google Drive
Verdict
A solid reference if you are squeezing performance out of standard CNN backbones and can tolerate a 2020-era PyTorch codebase. Less useful if you are already committed to transformers or need a fully maintained training pipeline.
Frequently asked
- What is BangguWu/ECANet?
- This CVPR 2020 channel attention module replaces Squeeze-and-Excitation’s fully-connected layers with a fast 1D convolution, adding negligible overhead to ResNet and MobileNetV2 backbones.
- Is ECANet open source?
- Yes — BangguWu/ECANet is open source, released under the MIT license.
- What language is ECANet written in?
- BangguWu/ECANet is primarily written in Python.
- How popular is ECANet?
- BangguWu/ECANet has 1.4k stars on GitHub.
- Where can I find ECANet?
- BangguWu/ECANet is on GitHub at https://github.com/BangguWu/ECANet.