mxnet-octave-conv

Octave convolution


Keywords
convolutions
License
Other
Install
pip install mxnet-octave-conv==0.1.0

Documentation

MXNet Octave Conv

Travis Coverage 996.ICU

Unofficial implementation of Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution.

Install

pip install mxnet-octave-conv

Usage

import mxnet as mx
from mxnet_octave_conv import octave_conv, octave_dual

mx.symbol.Variable(name='data')
conv = octave_conv(x, num_filter=7, kernel=(3, 3))
pool = octave_dual(conv, lambda data: mx.symbol.Pooling(data, kernel=(2, 2), stride=(2, 2), pool_type='max'))
conv = octave_conv(pool, num_filter=5, kernel=3, stride=1, dilate=(2, 3), name='Mid')
pool = octave_dual(conv, lambda data: mx.symbol.Pooling(data, kernel=(2, 2), stride=(2, 2), pool_type='max'))
conv = octave_conv(pool, num_filter=3, kernel=3, stride=(1, 1), dilate=1, ratio_out=0.0)
pool = octave_dual(conv, lambda data: mx.symbol.Pooling(data, kernel=(2, 2), stride=(2, 2), pool_type='max'))
flatten = mx.symbol.Flatten(pool)
dense = mx.symbol.FullyConnected(flatten, num_hidden=2)
model = mx.symbol.SoftmaxOutput(dense, name='softmax')
print(mx.visualization.print_summary(model, shape={'data': (2, 3, 32, 32)}))