Skip to content

PyTorch implementation of Octave Convolution for ResNet

License

Notifications You must be signed in to change notification settings

cedrickchee/octaveconv-pytorch

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Octave Convolution (OctConv)

Pytorch implementation of Octave Convolution with other similar operation

This is third-party/un-official implementation of the following papers which are presented in Recent_Convolution.pdf:

  1. Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution paper.
  2. Adaptively Connected Neural Networks.(CVPR 2019) paper.
  3. Res2net:A New Multi-scale Backbone Architecture paper.

Plan

  • Add Res2Net block with SE-layer
  • Add Adaptive-Convolution: both pixel-aware and dataset-aware (done)
  • Add HetConv (optional): (if I have time 🙂)
  • Train on CIFAR
  • Train on ImageNet (Who can help me train this repo on ImageNet?)

Requirements

  • Python 3
    • Tested with Python 3.6
  • PyTorch
    • Tested with version 1.0.1

Usage

Check model files under the nn directory.

from nn.OCtaveResnet import resnet50
from nn.res2net import se_resnet50
from nn.AdaptiveConvResnet import PixelAwareResnet50, DataSetAwareResnet50

model = resnet50().cuda()
model = se_resnet50().cuda()
model = PixelAwareResnet50().cuda()
model = DataSetAwareResnet50().cuda()

Credits:

Referenced these implementations:

  1. OctaveConv: MXNet implementation here
  2. AdaptiveCov: Offical tensorflow implementation here

Other Implementations

License

MIT License

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%