/OctaveConv_pytorch

Pytorch implementation of Octave convolution

Primary LanguagePythonMIT LicenseMIT

OctaveConv_pytorch

Pytorch implementation of Octave convolution with other similar operation

This is third parity implementation(un-official) of Following Paper which are talked in Recente_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
  4. ScaleNet:Data-Driven Neuron Allocation for Scale Aggregation Networks paper

Plan

  1. add Res2Net bolock with SE-layer (done)
  2. add Adaptive-Convolution: both pixel-aware and dataset-aware (done)
  3. add HetConv(optional): if I have time :)
  4. Train on Imagenet (): Who can help me train this repo on Imagenet

Usage

check model files under the nn floder.

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()

Reference:

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

License

MIT License