← all repositories
shekkizh/FCN.tensorflow

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.

1.2k stars Jupyter Notebook Computer Vision
FCN.tensorflow
Velocity · 7d
+0.4
★ / day
Trend
steady
star history

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=visualize flag 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.