Skip to content
This repository has been archived by the owner on Dec 12, 2022. It is now read-only.
/ DCNv2 Public archive
forked from MatthewHowe/DCNv2

Deformable Convolutional Networks v2 (DCNv2) with Pytorch 1.8+ & JIT Compilation

License

Notifications You must be signed in to change notification settings

tteepe/DCNv2

 
 

Repository files navigation

Archived: DCNv2

This repo has been archived! But there is a great maintained alternative by MMCV.

Use this guide to generate your install version, i.e.:

pip install mmcv-full==1.7.0 -f https://download.openmmlab.com/mmcv/dist/cu117/torch1.13/index.html

Then you can change your imports to replace your DCN layer:

from mmcv.ops.deform_conv import DeformConv2d as DCN

from mmcv.ops.modulated_deform_conv import ModulatedDeformConv2dPack as DCN

Old: DCNv2 with Pytorch 1.8+ & JIT Compilation

CI testing

Requirements

pip install torch torchvision torchaudio

sudo apt-get install ninja-build

Test

cd tests
python test_cuda.py  # run examples and gradient check on gpu
python test_cpu.py   # run examples and gradient check on cpu 

Note

Now the master branch is for pytorch 1.x, you can switch back to pytorch 0.4 with,

git checkout pytorch_0.4

Known Issues:

  • Gradient check w.r.t offset (solved)
  • Backward is not reentrant (minor)

This is an adaption of the official Deformable-ConvNets.

Update: all gradient check passes with double precision.

Another issue is that it raises RuntimeError: Backward is not reentrant. However, the error is very small (<1e-7 for float <1e-15 for double), so it may not be a serious problem (?)

Please post an issue or PR if you have any comments.

About

Deformable Convolutional Networks v2 (DCNv2) with Pytorch 1.8+ & JIT Compilation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Cuda 34.3%
  • Python 29.6%
  • C++ 25.2%
  • C 10.9%