vidit98 / graphconv

pytorch implementation of graph convolutions for semantic segmentation on ADE20K dataset

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Semantic Segmentation

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.

Requirements

  • pytorch 1.1
  • visdom
  • python3

Highlights

  • 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.

TO DO

  • Give flexiblity to use number of GPUs or to run only on CPU, currently model uses 2 GPUs.
  • Upload checkpoint files
  • Optimize code

Training

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. Training Loss

About

pytorch implementation of graph convolutions for semantic segmentation on ADE20K dataset


Languages

Language:Python 100.0%