CondenseNet tensorflow
Tensorflow implementation of CondenseNet: An Efficient DenseNet using Learned Group Convolutions. The code is tested with cifar10, inference phase not implemented yet.
Official PyTorch implementation by @ShichenLiu here.
Prerequisites
- Python 2.7+ (3.5+ is recommended)
- NumPy
- TensorFlow 1.0+
Data
Preparation
- Go to
data/
folder and runpython2 generate_cifar10_tfrecords.py --data-dir=./cifar-10-data
. This code is directly borrowed from tensorflow official repo and have to be run with python 2.7+.
Train
Use default parameters:
python main.py
Check out tunable hyper-parameters:
python main.py --help
Other parameters including stages, groups, condense factor, and growth rate
are in experiment.py
.
Notes
- Training for 300 epochs with the default settings reach testing accuracy 93.389% (paper report is 94.94%). There might be some details I didn't notice, feel free to point them out.
- All the default parameters settings follow the paper/official pytorch implementation.
- Current implmentations of standard group convolution and learned group convolution are very inefficient (a bunch of reshape, transpose and concat), looking for help to build much more efficient graph.
- Evaluation phase (index select) has not been implemented yet, looking for potential help as well :D.
- Issues are welcome!