TensorFlow FCN: a 2016 paper port held together by duct tape
A faithful but aging reimplementation of Berkeley's Fully Convolutional Networks, frozen in the amber of TensorFlow 0.11 and Python 2.7.

What it does
This repo ports the original Berkeley FCN semantic-segmentation model from Caffe to TensorFlow, training on MIT’s Scene Parsing dataset. It takes an input image and produces a pixel-wise class prediction — cars and people come through reasonably well, smaller objects get mangled by the 256×256 resize.
The interesting bit
The author actually bothered to visualize gradient flows layer by layer, which is more educational effort than most paper reimplementations manage. You can watch transfer learning in real time: VGG layers stay nearly frozen while the new top layers scramble to catch up, then slowly thaw. There’s even a debug flag that dumps activations and variable stats.
Key highlights
- Trains in ~6–7 hours on a 12GB Titan X (batch size of 2, 9 epochs)
- Includes an IPython notebook for color-mapped result visualization
--mode=visualizeflag for quick sanity checks on random validation batches- Gradient inspection plots for conv_1_1 through conv_4_3 included in repo
- Explicit branch for TensorFlow 0.11 compatibility
Caveats
- Code targets TensorFlow 0.11–0.12 and Python 2.7; TensorFlow 1.0+ issues are documented but not resolved in-tree (see Issue #9)
- Windows support is “discussed” rather than guaranteed
- Only 9 epochs of training, so the author openly admits the model underlearns many concepts
- Small batch size and aggressive resizing are acknowledged accuracy killers
Verdict
Worth a look if you’re teaching transfer learning or need a minimal, hackable FCN baseline — but expect archaeology, not production. Anyone needing modern TF/Keras, multi-GPU training, or state-of-the-art mIoU should keep scrolling.