/OctaveConv_pytorch

Pytorch implementation of newly added 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(ICCV 2019). 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
  5. SRM : A Style-based Recalibration Module for Convolutional Neural Networks paper

Plan

  1. add Res2Net bolock with SE-layer (done)
  2. add Adaptive-Convolution: both pixel-aware and dataset-aware (done)
  3. Train code on Imagenet. (done)
  4. Support more models. ()

Usage

check model files under the fig/nn floder.

from lib.nn.OCtaveResnet import resnet50
from lib.nn.res2net import se_resnet50
from lib.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
  4. SGENet:here

License

MIT License