Semantic segmentation is the task of assigning each pixel a class. Many different methods are proposed for the same. This a pytorch implementation of this paper. To know in more detail about the implementation and method refer to my blog post.
- pytorch 1.1
- visdom
- python3
- Model can be distributed over many GPUs: pytorch provides the facility to divide data into various GPUs and train the network parallely. But here you can divide the model in various GPUs.
- Live Data Visualization: You can visualize the training curve live using visdom.
- Flexible to remove and add GCU units.
- Give flexiblity to use number of GPUs or to run only on CPU, currently model uses 2 GPUs.
- Upload checkpoint files
- Optimize code
Download data set from here. Place all the training images in data/ADEChallengeData2016/images/training
and ground truth of segmentation in data/ADEChallengeData2016/annotations/training
.
To put the network to training use the command below. Hyperparameters can be changed by giving inputs via terminal. Please go through the file train.py for knowing about hyperparameters
python3 train.py
The network was trained on RTX 2080. It took around 12 hrs to train. Training loss plot is given below.