← Open Source
SimonVandenhende

Multi-Task-Learning-PyTorch

PyTorch implementation of multi-task learning architectures, incl. MTI-Net (ECCV2020).

Model DevelopmentArchitecturePython
Open on GitHub
Momentum
+0stars in 24 hours0.0%
843
Stars
111
Forks
+0
This week
1
Contributors
Created 2020-07-08 · Updated 2026-10-07 · #13278 today
Top developers
SimonVandenhende

SimonVandenhende/Multi-Task-Learning-PyTorch is ranked 13,278 with 843 stars.

Same-category comparison

SimonVandenhende/Multi-Task-Learning-PyTorch is ranked 13,278 among these 8 peers; YannDubs/disentangling-vae is ranked 13,279.

Same-category comparison
NameRankMetrics
OpenRL-Lab/openrl13,269
Language:
Python
Stars:
844
Forks:
84
Description:
Unified Reinforcement Learning Framework.
Tomiinek/Multilingual_Text_to_Speech13,271
Language:
Python
Stars:
844
Forks:
156
Description:
An implementation of Tacotron 2 that supports multilingual experiments with parameter-sharing, code-switching, and voice cloning.
aimagelab/mammoth13,272
Language:
Python
Stars:
844
Forks:
156
Description:
An Extendible (General) Continual Learning Framework based on Pytorch - official codebase of Dark Experience for General Continual Learning.
tatsu-lab/alpaca_farm13,276
Language:
Python
Stars:
844
Forks:
66
Description:
A simulation framework for RLHF and alternatives. Develop your RLHF method without collecting human data.
YannDubs/disentangling-vae13,279
Language:
Python
Stars:
843
Forks:
150
Description:
Experiments for understanding disentanglement in VAE latent representations.
facebookresearch/d2go13,286
Language:
Python
Stars:
842
Forks:
203
Description:
D2Go is a toolkit for efficient deep learning.
sangwoomo/instagan13,288
Language:
Python
Stars:
842
Forks:
156
Description:
InstaGAN: Instance-aware Image Translation (ICLR 2019).
david-cortes/contextualbandits13,293
Language:
Python
Stars:
841
Forks:
153
Description:
Python implementations of contextual bandits algorithms.
Key parameters and specifications
Key parameters and specifications
ParameterValue
LanguagePython
CategoryModel Development
SubcategoryArchitecture
Stars843
Forks111
Contributors1
Created date2020-07-08
Updated date2026-10-07
Stars in 1 day0
Stars in 7 days0
Rank13,278
Previous rank13,173
Rank change-105
7-day stars rank13,860
Previous 7-day stars rank13,877
7-day stars rank change17
Total stars rank12,778
Previous total stars rank12,761
Total stars rank change-17
CountryUSA
README summary

Multi-Task Learning This repo aims to implement several multi-task learning models and training strategies in PyTorch. The code base complements the following works: **Multi-Task Learning for Dense Prediction Tasks: A Survey** Simon Vandenhende, Stamatios Georgoulis, Wouter Van Gansbeke, Marc Proesmans, Dengxin Dai and Luc Van Gool. **MTI-Net: Multi-Scale Task Interaction Networks for Multi-Task Learning** Simon Vandenhende, Stamatios Georgoulis and Luc Van Gool. An up-to-date list of works on multi-task learning can

be found here. Workshop :loudspeaker: :loudspeaker: :loudspeaker: We organized a **workshop** on multi-task learning at ICCV 2021 (Link). Jan 13: The recordings of our invited talks are now available on Youtube. Installation The code runs with recent Pytorch version, e. Assuming Anaconda, the most important packages can be installed as: We refer to the file for an overview of the package versions in our own environment. Usage Setup The following files need to be adapted in order to run

the code on your own machine: Change the file paths to the datasets in , e. All results will be stored under this directory. The seism repository is needed to perform the edge evaluation. If you want to use the HRNet backbones, please download the pre-trained weights here. The provided config files use an HRNet-18 backbone. Download the and save it to the directory . The datasets will be downloaded automatically to the specified paths when running the code for

the first time. Training The configuration files to train the model can be found in the directory. The model can be trained by running the following command: Evaluation We evaluate the best model at the end of training. The evaluation criterion is based on Equation 10 from our survey paper and requires to pre-train a set of single-tasking networks beforehand. To speed-up training, it is possible to evaluate the model only during the final 10 epochs by

adding the following line to your config file: Support The following datasets and tasks are supported. In particular, the evaluation and dataloaders were taken from there. Citation If you find this repo useful for your research, please consider citing the following works: Updates For more information see issue #1. The initial code used the NYUDv2 dataloader from ASTMT. This implementation was different from the one we used to run our experiments in the survey. Therefore, we have re-written the

NYUDv2 dataloader to be consistent with our survey results. To avoid any issues, it is best to remove your old version of the NYUDv2 dataset. The python script will then automatically download the correct version when using the NYUDv2 dataset. The depth task is evaluated in a pixel-wise fashion to be consistent with the survey. This is different from ASTMT, which averages the results across the images. License This software is released under a creative commons license which allows

for personal and research use only. For a commercial license please contact the authors. Acknoledgements The authors acknowledge support by

Frequently asked questions

How many stars and forks are recorded?

SimonVandenhende/Multi-Task-Learning-PyTorch has 843 stars and 111 forks.

What is the repository rank?

SimonVandenhende/Multi-Task-Learning-PyTorch is ranked 13,278.

What language and category are recorded?

SimonVandenhende/Multi-Task-Learning-PyTorch has 843 stars, uses Python and belongs to Model Development.

Which repository is closest in rank?

SimonVandenhende/Multi-Task-Learning-PyTorch is compared with YannDubs/disentangling-vae, ranked 13,279 with 843 stars.

README

Multi-Task Learning

This repo aims to implement several multi-task learning models and training strategies in PyTorch. The code base complements the following works:

Multi-Task Learning for Dense Prediction Tasks: A Survey

Simon Vandenhende, Stamatios Georgoulis, Wouter Van Gansbeke, Marc Proesmans, Dengxin Dai and Luc Van Gool.

MTI-Net: Multi-Scale Task Interaction Networks for Multi-Task Learning

Simon Vandenhende, Stamatios Georgoulis and Luc Van Gool.

An up-to-date list of works on multi-task learning can be found here.

Workshop

:loudspeaker: :loudspeaker: :loudspeaker: We organized a workshop on multi-task learning at ICCV 2021 (Link).

  • Jan 13: The recordings of our invited talks are now available on Youtube.

Installation

The code runs with recent Pytorch version, e.g. 1.4. Assuming Anaconda, the most important packages can be installed as:

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch
conda install imageio scikit-image		   	   # Image operations
conda install -c conda-forge opencv		           # OpenCV
conda install pyyaml easydict                 		   # Configurations
conda install termcolor                       		   # Colorful print statements

We refer to the requirements.txt file for an overview of the package versions in our own environment.

Usage

Setup

The following files need to be adapted in order to run the code on your own machine:

  • Change the file paths to the datasets in utils/mypath.py, e.g. /path/to/pascal/.
  • Specify the output directory in configs/your_env.yml. All results will be stored under this directory.
  • The seism repository is needed to perform the edge evaluation. See the README in ./evaluation/seism/.
  • If you want to use the HRNet backbones, please download the pre-trained weights here. The provided config files use an HRNet-18 backbone. Download the hrnet_w18_small_model_v2.pth and save it to the directory ./models/pretrained_models/.

The datasets will be downloaded automatically to the specified paths when running the code for the first time.

Training

The configuration files to train the model can be found in the configs/ directory. The model can be trained by running the following command:

python main.py --config_env configs/env.yml --config_exp configs/$DATASET/$MODEL.yml

Evaluation

We evaluate the best model at the end of training. The evaluation criterion is based on Equation 10 from our survey paper and requires to pre-train a set of single-tasking networks beforehand. To speed-up training, it is possible to evaluate the model only during the final 10 epochs by adding the following line to your config file:

eval_final_10_epochs_only: True

Support

The following datasets and tasks are supported.

Dataset Sem. Seg. Depth Normals Edge Saliency Human Parts
PASCAL Y N Y Y Y Y
NYUD Y Y Aux Aux N N

The following models are supported.

Backbone HRNet ResNet
Single-Task Y Y
Multi-Task Y Y
Cross-Stitch Y
NDDR-CNN Y
MTAN Y
PAD-Net Y
MTI-Net Y

References

This code repository is heavily based on the ASTMT repository. In particular, the evaluation and dataloaders were taken from there.

Citation

If you find this repo useful for your research, please consider citing the following works:

@article{
  author={S. Vandenhende and S. Georgoulis and W. Van Gansbeke and M. Proesmans and D. Dai and L. Van Gool},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence}, 
  title={Multi-Task Learning for Dense Prediction Tasks: A Survey}, 
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3054719}}

@article{vandenhende2020mti,
  title={MTI-Net: Multi-Scale Task Interaction Networks for Multi-Task Learning},
  author={Vandenhende, Simon and Georgoulis, Stamatios and Van Gool, Luc},
  journal={ECCV2020},
  year={2020}
}

@InProceedings{MRK19,
  Author    = {Kevis-Kokitsi Maninis and Ilija Radosavovic and Iasonas Kokkinos},
  Title     = {Attentive Single-Tasking of Multiple Tasks},
  Booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  Year      = {2019}
}

@article{pont2015supervised,
  title={Supervised evaluation of image segmentation and object proposal techniques},
  author={Pont-Tuset, Jordi and Marques, Ferran},
  journal={IEEE transactions on pattern analysis and machine intelligence},
  year={2015},
}

Updates

For more information see issue #1.

The initial code used the NYUDv2 dataloader from ASTMT. This implementation was different from the one we used to run our experiments in the survey. Therefore, we have re-written the NYUDv2 dataloader to be consistent with our survey results. To avoid any issues, it is best to remove your old version of the NYUDv2 dataset. The python script will then automatically download the correct version when using the NYUDv2 dataset.

The depth task is evaluated in a pixel-wise fashion to be consistent with the survey. This is different from ASTMT, which averages the results across the images.

License

This software is released under a creative commons license which allows for personal and research use only. For a commercial license please contact the authors. You can view a license summary here.

Acknoledgements

The authors acknowledge support by Toyota via the TRACE project and MACCHINA (KULeuven, C14/18/065).

Nearby in the ranking
Similar items