An inside-out convolution operator for vision backbones
Official implementation of a CVPR 2021 operator that inverts convolution, aiming for the efficiency of conv nets and the flexibility of self-attention.

What it does
The repo implements involution, a neural primitive that rethinks the standard convolution operator. It provides a memory-efficient CuPy-based implementation and a full model zoo—dubbed RedNet—covering image classification, object detection, instance segmentation, and semantic segmentation. Everything is packaged as drop-in modules for the OpenMMLab ecosystem.
The interesting bit
Instead of sharing kernels across spatial locations like convolution, or computing pairwise attention like transformers, involution generates location-specific kernels. The authors claim this hits a middle ground: leaner than self-attention in form, yet more efficient and effective than standard convolution. The model zoo tables suggest the trade-off can pay off, showing sizable parameter and FLOP reductions on ImageNet and mixed but often positive accuracy shifts on COCO.
Key highlights
- Ships with pre-trained RedNet backbones (26 to 152 layers) and downstream task configs for OpenMMLab toolkits.
- Memory-efficient operator implementation relies on CuPy; the authors note a custom CUDA kernel could accelerate it further.
- Model zoo reports reduced parameters and FLOPs compared to convolution baselines across ImageNet, COCO, and Cityscapes.
- Checkpoints and training logs are provided, though the authors caution that reimplementation results may differ slightly from the paper.
Caveats
- The code is tightly coupled to OpenMMLab (
mmcls,mmdet,mmseg), so adopting it means buying into that toolchain. - Training the ImageNet models required 64 GPUs; COCO used 8 and Cityscapes used 4, suggesting serious hardware expectations.
- The current CuPy implementation is not fully hardware-optimized, and the README invites community contributions for a custom CUDA kernel.
Verdict
Worth a look if you are building vision backbones and want an off-the-shelf alternative to ResNet within the OpenMMLab universe. Skip it if you are outside the PyTorch/OpenMMLab ecosystem or looking for a framework-agnostic, standalone operator.
Frequently asked
- What is d-li14/involution?
- Official implementation of a CVPR 2021 operator that inverts convolution, aiming for the efficiency of conv nets and the flexibility of self-attention.
- Is involution open source?
- Yes — d-li14/involution is open source, released under the MIT license.
- What language is involution written in?
- d-li14/involution is primarily written in Python.
- How popular is involution?
- d-li14/involution has 1.3k stars on GitHub.
- Where can I find involution?
- d-li14/involution is on GitHub at https://github.com/d-li14/involution.