← all repositories
d-li14/involution

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.

1.3k stars Python Computer VisionML Frameworks
involution
Not currently ranked — collecting fresh signals.
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.