TopoModelX
(TMX) is a Python module for topological deep learning. It offers simple and efficient tools to implement topological neural networks for science and engineering.
TMX's development follows the topological deep learning (TDL) blue print laid out in:
TMX can reproduce and extend the topological neural networks (TNNs) surveyed in:
See our graphical literature review with message-passing equations available at https://github.com/awesome-tnns/awesome-tnns.
Note: TMX is still under development.
To develop tmx on your machine, here are some tips.
First, we recommend using Python 3.11.3, which is the python version used to run the unit-tests.
For example, create a conda environment:
conda create -n tmx python=3.11.3
conda activate tmx
Then:
-
Clone a copy of tmx from source:
git clone git@github.com:pyt-team/TopoModelX.git cd TopoModelX
-
Install tmx in editable mode:
pip install -e '.[all]'
Notes:
- Requires pip >= 21.3. Refer: PEP 660.
- On Windows, use
pip install -e .[all]
instead (without quotes around[all]
).
-
Install torch, torch-scatter, torch-sparse with or without CUDA depending on your needs.
pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/${CUDA} pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.0.1+${CUDA}.html pip install torch-cluster -f https://data.pyg.org/whl/torch-2.0.0+${CUDA}.html
where
${CUDA}
should be replaced by eithercpu
,cu102
,cu113
, orcu115
depending on your PyTorch installation (torch.version.cuda
). -
Ensure that you have a working tmx installation by running the entire test suite with
pytest
In case an error occurs, please first check if all sub-packages (
torch-scatter
,torch-sparse
,torch-cluster
andtorch-spline-conv
) are on its latest reported version. -
Install pre-commit hooks:
pre-commit install
To learn more about the topological deep learning blueprint:
- Mustafa Hajij, Ghada Zamzmi, Theodore Papamarkou, Nina Miolane, Aldo Guzmán-Sáenz, Karthikeyan Natesan Ramamurthy, Tolga Birdal, Tamal K. Dey, Soham Mukherjee, Shreyas N. Samaga, Neal Livesay, Robin Walters, Paul Rosen, Michael T. Schaub. Topological Deep Learning: Going Beyond Graph Data.
@misc{hajij2023topological,
title={Topological Deep Learning: Going Beyond Graph Data},
author={Mustafa Hajij and Ghada Zamzmi and Theodore Papamarkou and Nina Miolane and Aldo Guzmán-Sáenz and Karthikeyan Natesan Ramamurthy and Tolga Birdal and Tamal K. Dey and Soham Mukherjee and Shreyas N. Samaga and Neal Livesay and Robin Walters and Paul Rosen and Michael T. Schaub},
year={2023},
eprint={2206.00606},
archivePrefix={arXiv},
primaryClass={cs.LG}
}