The following repository contains a functional framework to perform different deep learning tasks like Classification, Semantic segmentation and Domain adaptation.
- Classification (functional)
- Model: VGG16
- Semantic segmentation (functional)
- Model: FCN8, DenseNetFCN (Tiramisú)
- Object Detection (not implemented yet)
- Domain Adaptation (not implemented yet)
- Train, validation and test in one run using a proper configuration.
- Early stopping with model saving control via different metrics
- TensorBoardX support (with confusion matrix display)
- Configuration file to run experiments easily ConfigFile
- Metrics: mean accuracy, mean IoU
- Dataloader on GPU
- Training scheduler
- Train Progress bar
- Auto downloadable pretrained models from ImageNet
- Configure the configuration file in config/ConfigFile.py
- Run code using: CUDA_VISIBLE_DEVICES=[gpu_number] python main.py --exp_name [experiment_name] --exp_folder [path_to_save_experiment] --config_file [path_to_config_file] You can also add any variable from the config file, just using --[var name] [value], the parameter given by argument will overwrite the value from the config file.
- Python 2.7
- PyTorch 0.3.0 (https://pytorch.org/)
- Scipy 1.0.0
- Numpy 1.13.3
- OpenCV 3.0
- wget
- tensorboardx
$ pip install requirements.txt -r --user
- Datasets are defined in txt files, one for images and gt files for each instance of training validation and test. The txt file must contain the path to the image and have the same line order per image respect to the gt file. This files path must be defined in the ConfigFile.py
- Multi-GPU is not supported yet.