Batch linear assignment for PyTorch
Installation | Usage | Citation
Batch computation of the linear assignment problem on GPU.
Install
Build and install via PyPI (source distribution):
pip install torch-linear-assignment
Build and install from Git repository:
pip install .
Building in an isolated environment may use a different PyTorch version. To match the current environment and reduce the disk usage, apply the following flag:
pip install --no-build-isolation torch-linear-assignment
When building with CUDA, make sure NVCC has the same CUDA version as PyTorch. You can choose CUDA version by
export PATH=/usr/local/cuda-<version>/bin:"$PATH"
If you need custom C++ compiler, use the following command:
CXX=<c++-compiler> CC=<gcc-compiler> pip install .
If you get a torch-not-found error, try the following command:
pip install --upgrade pip wheel setuptools
python -m pip install .
Example
import torch
from torch_linear_assignment import batch_linear_assignment
cost = torch.tensor([
8, 4, 7,
5, 2, 3,
9, 6, 7,
9, 4, 8
]).reshape(1, 4, 3).cuda()
assignment = batch_linear_assignment(cost)
print(assignment)
The output is:
tensor([[ 0, 2, -1, 1]], device='cuda:0')
To get indices in the SciPy's format:
from torch_linear_assignment import assignment_to_indices
row_ind, col_ind = assignment_to_indices(assignment)
print(row_ind)
print(col_ind)
The output is:
tensor([[0, 1, 3]], device='cuda:0')
tensor([[0, 2, 1]], device='cuda:0')
Citation
The code was originally developed for the HoTPP Benchmark. If you use this code in your research project, please cite one of the following papers:
@article{karpukhin2024hotppbenchmark,
title={HoTPP Benchmark: Are We Good at the Long Horizon Events Forecasting?},
author={Karpukhin, Ivan and Shipilov, Foma and Savchenko, Andrey},
journal={arXiv preprint arXiv:2406.14341},
year={2024},
url ={https://arxiv.org/abs/2406.14341}
}
@article{karpukhin2024detpp,
title={DeTPP: Leveraging Object Detection for Robust Long-Horizon Event Prediction},
author={Karpukhin, Ivan and Savchenko, Andrey},
journal={arXiv preprint arXiv:2408.13131},
year={2024},
url ={https://arxiv.org/abs/2408.13131}
}
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file torch_linear_assignment-0.0.6.tar.gz.
File metadata
- Download URL: torch_linear_assignment-0.0.6.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.25
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6aad76d3c976b40cf1572e81bed8aedbeafdacb817f290e137c7a76ad58fcd23
|
|
| MD5 |
d0e76b79a38191161cf7ba2bf5caadd1
|
|
| BLAKE2b-256 |
5210eafc7decdd2332430bd9039cd857c383af6876d7642f66944202387a5b2d
|