Semantic segmentation models, datasets and losses implemented in PyTorch. PyTorch and Torchvision needs to be installed before running the scripts, together with PIL and opencv for data-preprocessing and tqdm for showing the training progress. PyTorch v1.1 is supported (using the new supported tensoboard); can work with earlier versions, but instead of using tensoboard, use tensoboardX. Poly learning rate, where the learning rate is scaled down linearly from the starting value down to zero during training. Considered as the go-to scheduler for semantic segmentation. One Cycle learning rate, for a learning rate LR, we start from LR / 10 up to LR for 30% of the training time, and we scale down to LR / 25 for remaining time, the scaling is done in a cos annealing fashion (see Figure bellow), the momentum is also modified but in the opposite manner starting from 0.95 down to 0.85 and up to 0.95.
Features
- A clear and easy to navigate structure
- A json config file with a lot of possibilities for parameter tuning
- Supports various models, losses, Lr schedulers, data augmentations and datasets
- All of the data augmentations are implemented using OpenCV
- To train a model, first download the dataset to be used to train the model, then choose the desired architecture
- The code structure is based on pytorch-template