cedrickchee / octaveconv-pytorch

PyTorch implementation of Octave Convolution for ResNet

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

PyTorch implementation of Octave Convolution for ResNet

License:MIT License


Languages

Language:Python 100.0%