← Open Source
shekkizh

FCN.tensorflow

Tensorflow implementation of Fully Convolutional Networks for Semantic Segmentation (http://fcn.berkeleyvision.org).

Model DevelopmentArchitectureJupyter Notebook
Open on GitHub
Momentum
+0stars in 24 hours0.0%
1.25k
Stars
519
Forks
+-1
This week
3
Contributors
Created 2016-10-06 · Updated 2026-10-09 · #10977 today
Top developers
shekkizhJakobu5lababidi

shekkizh/FCN.tensorflow is ranked 10,977 with 1,247 stars.

Same-category comparison

shekkizh/FCN.tensorflow is ranked 10,977 among these 8 peers; ranahanocka/point2mesh is ranked 10,972.

Same-category comparison
NameRankMetrics
facebookresearch/home-robot10,968
Language:
Python
Stars:
1,248
Forks:
155
Description:
Mobile manipulation research tools for roboticists.
facioquo/stock-indicators-dotnet10,969
Language:
C#
Stars:
1,248
Forks:
276
Description:
Stock Indicators for . NET is a C# NuGet package that transforms raw equity, commodity, forex, or cryptocurrency financial market price quotes into technical indicators and trading insights. You'll need this essential data in the investment tools that you're building for algorithmic trading, technical analysis, machine learning, or visual charting.
google-deepmind/android_env10,971
Language:
Python
Stars:
1,248
Forks:
122
Description:
RL research on Android devices.
ranahanocka/point2mesh10,972
Language:
Python
Stars:
1,248
Forks:
136
Description:
Reconstruct Watertight Meshes from Point Clouds [SIGGRAPH 2020].
utiasSTARS/pykitti10,982
Language:
Python
Stars:
1,246
Forks:
239
Description:
Python tools for working with KITTI data.
mravanelli/SincNet10,987
Language:
Python
Stars:
1,245
Forks:
273
Description:
SincNet is a neural architecture for efficiently processing raw audio samples.
FenTechSolutions/CausalDiscoveryToolbox10,992
Language:
Python
Stars:
1,243
Forks:
198
Description:
Package for causal inference in graphs and in the pairwise settings. Tools for graph structure recovery and dependencies are included.
tf-encrypted/tf-encrypted11,005
Language:
Python
Stars:
1,241
Forks:
211
Description:
A Framework for Encrypted Machine Learning in TensorFlow.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguageJupyter Notebook
CategoryModel Development
SubcategoryArchitecture
Stars1,247
Forks519
Contributors3
Created date2016-10-06
Updated date2026-10-09
Stars in 1 day0
Stars in 7 days-1
Rank10,977
Previous rank10,941
Rank change-36
7-day stars rank17,228
Previous 7-day stars rank17,221
7-day stars rank change-7
Total stars rank9,399
Previous total stars rank9,385
Total stars rank change-14
CountryUSA
README summary

tensorflow Tensorflow implementation of Fully Convolutional Networks for Semantic Segmentation (FCNs). The implementation is largely based on the reference code provided by the authors of the paper link. The model was applied on the Scene Parsing Challenge dataset provided by MIT 1. Useful links Prerequisites The results were obtained after training for ~6-7 hrs on a 12GB TitanX. The code was originally written and tested with and . summary calls have been updated to work with tensorflow version 0. To

work with older versions of tensorflow use branch tf. Some of the problems while working with tensorflow1. 0 and in windows have been discussed in Issue #9. To train model simply execute To visualize results for a random batch of images use flag flag can be set during training to add information regarding activations, gradients, variables etc. The IPython notebook in logs folder can be used to view results in color as below. Results Results were obtained by training the

model in batches of 2 with resized image of 256x256. Note that although the training is done at this image size - Nothing prevents the model from working on arbitrary sized images. No post processing was done on the predicted images. Training was done for 9 epochs - The shorter training time explains why certain concepts seem semantically understood by the model while others were not. Results below are from randomly chosen images from validation dataset. Pretty much used the same network

design as in the reference model implementation of the paper in caffe. The weights for the new layers added were initialized with small values, and the learning was done using Adam Optimizer (Learning rate = 1e-4). Observations The small batch size was necessary to fit the training model in memory but explains the slow learning Concepts that had many examples seem to be correctly identified and segmented - in the example above you can see that cars, persons were identified better

. I believe this can be solved by training for longer epochs. Also the resizing of images cause loss of information - you can notice this in the fact smaller objects are segmented with less accuracy. Now for the gradients, If you closely watch the gradients you will notice the inital training is almost entirely on the new layers added - it is only after these layers are reasonably trained do we see the VGG layers get some gradient flow. This is understandable

as changes the new layers affect the loss objective much more in the beginning. The earlier layers of the netowrk are initialized with VGG weights and so conceptually would require less tuning unless the train data is extremely varied - which in this case is not. The first layer of convolutional model captures low level information and since this entrirely dataset dependent you notice the gradients adjusting the first layer weights to accustom the model to the dataset. The other conv

layers from VGG have very small gradients flowing as the concepts captured here are good enough for our end objective

Frequently asked questions

How many stars and forks are recorded?

shekkizh/FCN.tensorflow has 1,247 stars and 519 forks.

What is the repository rank?

shekkizh/FCN.tensorflow is ranked 10,977.

What language and category are recorded?

shekkizh/FCN.tensorflow has 1,247 stars, uses Jupyter Notebook and belongs to Model Development.

Which repository is closest in rank?

shekkizh/FCN.tensorflow is compared with ranahanocka/point2mesh, ranked 10,972 with 1,248 stars.

README

FCN.tensorflow

Tensorflow implementation of Fully Convolutional Networks for Semantic Segmentation (FCNs).

The implementation is largely based on the reference code provided by the authors of the paper link. The model was applied on the Scene Parsing Challenge dataset provided by MIT http://sceneparsing.csail.mit.edu/.

  1. Prerequisites
  2. Results
  3. Observations
  4. Useful links

Prerequisites

  • The results were obtained after training for ~6-7 hrs on a 12GB TitanX.
  • The code was originally written and tested with tensorflow0.11 and python2.7. The tf.summary calls have been updated to work with tensorflow version 0.12. To work with older versions of tensorflow use branch tf.0.11_compatible.
  • Some of the problems while working with tensorflow1.0 and in windows have been discussed in Issue #9.
  • To train model simply execute python FCN.py
  • To visualize results for a random batch of images use flag --mode=visualize
  • debug flag can be set during training to add information regarding activations, gradients, variables etc.
  • The IPython notebook in logs folder can be used to view results in color as below.

Results

Results were obtained by training the model in batches of 2 with resized image of 256x256. Note that although the training is done at this image size - Nothing prevents the model from working on arbitrary sized images. No post processing was done on the predicted images. Training was done for 9 epochs - The shorter training time explains why certain concepts seem semantically understood by the model while others were not. Results below are from randomly chosen images from validation dataset.

Pretty much used the same network design as in the reference model implementation of the paper in caffe. The weights for the new layers added were initialized with small values, and the learning was done using Adam Optimizer (Learning rate = 1e-4).

Observations

  • The small batch size was necessary to fit the training model in memory but explains the slow learning
  • Concepts that had many examples seem to be correctly identified and segmented - in the example above you can see that cars, persons were identified better. I believe this can be solved by training for longer epochs.
  • Also the resizing of images cause loss of information - you can notice this in the fact smaller objects are segmented with less accuracy.

Now for the gradients,

  • If you closely watch the gradients you will notice the inital training is almost entirely on the new layers added - it is only after these layers are reasonably trained do we see the VGG layers get some gradient flow. This is understandable as changes the new layers affect the loss objective much more in the beginning.
  • The earlier layers of the netowrk are initialized with VGG weights and so conceptually would require less tuning unless the train data is extremely varied - which in this case is not.
  • The first layer of convolutional model captures low level information and since this entrirely dataset dependent you notice the gradients adjusting the first layer weights to accustom the model to the dataset.
  • The other conv layers from VGG have very small gradients flowing as the concepts captured here are good enough for our end objective - Segmentation.
  • This is the core reason Transfer Learning works so well. Just thought of pointing this out while here.

Useful Links

  • Video of the presentaion given by the authors on the paper - link
Nearby in the ranking
Similar items