DenseNet in TensorFlow: a faithful port with training wheels
A straightforward TensorFlow reimplementation of the densely connected convnet paper, built on someone else's ResNet code and benchmarked on standard CIFAR.

What it does
Implements the DenseNet architecture from Huang et al.’s 2017 CVPR paper in TensorFlow, using the Tensorpack framework. Trains and evaluates on CIFAR-10+ and CIFAR-100+ with the same hyperparameters as the original Lua/Torch version.
The interesting bit
The README is admirably honest about its lineage: it’s “developed based on Yuxin Wu’s implementation of ResNet” — in other words, this is architectural adaptation, not ground-up reinvention. The author also documents where their preprocessing and batch-normalization treatment diverge from the original, which saves you from discovering the mismatch the hard way.
Key highlights
- Reaches ~5.77% error on CIFAR-10+ and ~26.36% on CIFAR-100+ after 300 epochs
- Runs at 5 iters/s on a single TITAN X (batch size 64, CUDA 7.5, cuDNN v5.1)
- Single-command training:
python cifar10-densenet.py - Explicitly notes two implementation differences from the Torch reference (preprocessing scope, BN parameter regularization)
Caveats
- Requires TensorFlow ≥ 1.0 and Tensorpack — this is not a standalone, dependency-light project
- Python 2 or 3 supported, but the code dates from the TF 1.x era; modern TF users may need migration work
- Only CIFAR-10/100 results shown; no ImageNet or larger-scale validation in the README
Verdict
Worth a look if you need a proven DenseNet baseline in legacy TensorFlow or want to compare Tensorpack against PyTorch implementations. Skip it if you’re already committed to PyTorch/TF 2.x and want production-ready code without archaeology.