Practical overview
When it fits
Use Libmtl when you need a PyTorch-based workflow for building multi-task models, comparing methods across benchmarks or extending an existing MTL implementation.
Who it is for
- Researchers comparing multi-task learning approaches on benchmark datasets
- Developers prototyping multi-task or multi-domain learning projects
- Practitioners who want to add custom architectures or optimization components to an MTL workflow
Documented uses
- Build a multi-task learning experiment with PyTorch.
- Compare supported optimization strategies and architectures using consistent evaluation procedures.
- Adapt existing methods or add custom components for a new application scenario.
- Use the provided NYUv2 example as a starting point for training an MTL model.
Requirements & limits
The project repository is public and identifies the software as open source under the MIT license.
- The README describes a unified evaluation process covering data processing, metric objectives and hyperparameters.
- The project lists support for eight architectures and 16 optimization strategies.
- The documented installation specifies Python 3.10 and CUDA 12.1-specific PyTorch and related wheels.
- An NYUv2 example includes dataset preparation references, a training script and a sample command.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Install Libmtl and prepare the NYUv2 example
Set up the documented environment and prepare the repository's NYUv2 training example.
Before you start
- Conda and Python 3.10
- The NYUv2 dataset preprocessed by mtan
- Dependencies listed in the repository README, including the specified PyTorch and torch-geometric wheel builds
Steps
Create and activate a Conda environment named libmtl with Python 3.10.
Clone the LibMTL repository and install the README's specified PyTorch and related wheels.
From the repository directory, install requirements.txt and install LibMTL in editable mode.
Download the preprocessed NYUv2 dataset linked from the README and note its local path for the example.
Expected outcome
The documented environment and dataset are prepared for the NYUv2 example; the README identifies examples/nyu/main.py as its training entry point.
Guide limitations
- The README pins CUDA 12.1-specific dependency builds; it does not establish compatibility with other environments.
- This guide covers preparation only, not running or verifying training.
Train the documented NYUv2 example
Use the repository's provided command to start training with EW weighting and HPS architecture.
Before you start
- The LibMTL environment and NYUv2 dataset prepared as described in the README
- The examples/nyu/main.py training script
Steps
Change to the examples/nyu directory.
Run python main.py -h to inspect the command-line arguments.
Run the README's example command, replacing /path/to/nyuv2 with the dataset location and PATH with a save location: python main.py --weighting EW --arch HPS --dataset_path /path/to/nyuv2 --gpu_id 0 --scheduler step --mode train --save_path PATH.
Expected outcome
The example command starts an NYUv2 multi-task learning training run configured with EW weighting and HPS architecture.
Guide limitations
- The example uses GPU ID 0 and the README does not specify hardware requirements or expected run time.
- Training success or compatibility with a particular environment is not guaranteed.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 15 October 2026
- Original website title
- median-research-group/LibMTL · Official homepage title · retained in its source language

