{"id":20063738,"url":"https://github.com/geometric-intelligence/topobenchmark","last_synced_at":"2025-03-05T13:11:02.048Z","repository":{"id":242609388,"uuid":"725558542","full_name":"geometric-intelligence/TopoBenchmark","owner":"geometric-intelligence","description":"TopoBenchmark is a Python library designed to standardize benchmarking and accelerate research in Topological Deep Learning","archived":false,"fork":false,"pushed_at":"2025-02-26T10:20:36.000Z","size":18633,"stargazers_count":105,"open_issues_count":18,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-02-26T12:08:15.266Z","etag":null,"topics":["cell-complex-neural-networks","cell-complexes","hypergraph-neural-networks","simplicial-complex","simplicial-neural-networks","topological-data-bechmark","topological-deep-learning","topological-learning","topological-neural-networks"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geometric-intelligence.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing/index.rst","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-30T11:56:03.000Z","updated_at":"2025-02-24T23:37:42.000Z","dependencies_parsed_at":"2024-09-12T06:54:17.306Z","dependency_job_id":"65d60eca-be1a-4507-b2cf-1e9bc7492134","html_url":"https://github.com/geometric-intelligence/TopoBenchmark","commit_stats":{"total_commits":882,"total_committers":10,"mean_commits":88.2,"dds":0.6258503401360545,"last_synced_commit":"04f9665cbc9a95e87dbf551b08ab0f8dee0a6001"},"previous_names":["pyt-team/topobenchmarkx","geometric-intelligence/topobenchmark"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2FTopoBenchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2FTopoBenchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2FTopoBenchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geometric-intelligence%2FTopoBenchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geometric-intelligence","download_url":"https://codeload.github.com/geometric-intelligence/TopoBenchmark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242031299,"owners_count":20060579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cell-complex-neural-networks","cell-complexes","hypergraph-neural-networks","simplicial-complex","simplicial-neural-networks","topological-data-bechmark","topological-deep-learning","topological-learning","topological-neural-networks"],"created_at":"2024-11-13T13:43:38.016Z","updated_at":"2025-03-05T13:11:02.014Z","avatar_url":"https://github.com/geometric-intelligence.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e\n  \u003cimg src=\"resources/logo.jpg\" width=\"800\"\u003e\n\u003c/h2\u003e\n\n\u003ch3 align=\"center\"\u003e\n    A Comprehensive Benchmark Suite for Topological Deep Learning\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\nAssess how your model compares against state-of-the-art topological neural networks.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Lint](https://github.com/geometric-intelligence/TopoBenchmark/actions/workflows/lint.yml/badge.svg)](https://github.com/geometric-intelligence/TopoBenchmark/actions/workflows/lint.yml)\n[![Test](https://github.com/geometric-intelligence/TopoBenchmark/actions/workflows/test.yml/badge.svg)](https://github.com/geometric-intelligence/TopoBenchmark/actions/workflows/test.yml)\n[![Codecov](https://codecov.io/gh/geometric-intelligence/TopoBenchmark/branch/main/graph/badge.svg)](https://app.codecov.io/gh/geometric-intelligence/TopoBenchmark)\n[![Docs](https://img.shields.io/badge/docs-website-brightgreen)](https://geometric-intelligence.github.io/topobenchmark/index.html)\n[![Python](https://img.shields.io/badge/python-3.10+-blue?logo=python)](https://www.python.org/)\n[![license](https://badgen.net/github/license/geometric-intelligence/TopoBenchmark?color=green)](https://github.com/geometric-intelligence/TopoBenchmark/blob/main/LICENSE)\n[![slack](https://img.shields.io/badge/chat-on%20slack-purple?logo=slack)](https://join.slack.com/t/geometric-intelligenceworkspace/shared_invite/zt-2k63sv99s-jbFMLtwzUCc8nt3sIRWjEw)\n\n\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#pushpin-overview\"\u003eOverview\u003c/a\u003e •\n  \u003ca href=\"#jigsaw-get-started\"\u003eGet Started\u003c/a\u003e •\n  \u003ca href=\"#anchor-tutorials\"\u003eTutorials\u003c/a\u003e •\n  \u003ca href=\"#gear-neural-networks\"\u003eNeural Networks\u003c/a\u003e •\n  \u003ca href=\"#rocket-liftings\"\u003eLiftings\u003c/a\u003e •\n  \u003ca href=\"#books-datasets\"\u003eDatasets\u003c/a\u003e •\n  \u003ca href=\"#mag-references\"\u003eReferences\u003c/a\u003e \n\u003c/p\u003e\n\n\n\n## :pushpin: Overview\n\n`TopoBenchmark` (TB) is a modular Python library designed to standardize benchmarking and accelerate research in Topological Deep Learning (TDL). In particular, TB allows to train and compare the performances of all sorts of Topological Neural Networks (TNNs) across the different topological domains, where by _topological domain_ we refer to a graph, a simplicial complex, a cellular complex, or a hypergraph. For detailed information, please refer to the [`TopoBenchmark: A Framework for Benchmarking Topological Deep Learning`](https://arxiv.org/pdf/2406.06642) paper.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"resources/workflow.jpg\" width=\"700\"\u003e\n\u003c/p\u003e\n\nThe main pipeline trains and evaluates a wide range of state-of-the-art TNNs and Graph Neural Networks (GNNs) (see \u003ca href=\"#gear-neural-networks\"\u003e:gear: Neural Networks\u003c/a\u003e) on numerous and varied datasets and benchmark tasks (see \u003ca href=\"#books-datasets\"\u003e:books: Datasets\u003c/a\u003e ). Through TopoTune (see \u003ca href=\"#bulb-topotune\"\u003e:bulb: TopoTune\u003c/a\u003e), the library provides easy access to training and testing an entire landscape of graph-based TNNs, new or existing, on any topological domain.\n\nAdditionally, the library offers the ability to transform, i.e. _lift_, each dataset from one topological domain to another (see \u003ca href=\"#rocket-liftings\"\u003e:rocket: Liftings\u003c/a\u003e), enabling for the first time an exhaustive inter-domain comparison of TNNs.\n\n## :jigsaw: Get Started\n\n### Create Environment\n\nIf you do not have conda on your machine, please follow [their guide](https://docs.anaconda.com/free/miniconda/miniconda-install/) to install it. \n\nFirst, clone the `TopoBenchmark` repository and set up a conda environment `tb` with python 3.11.3. \n\n```\ngit clone git@github.com:geometric-intelligence/topobenchmark.git\ncd TopoBenchmark\nconda create -n tb python=3.11.3\n```\n\nNext, check the CUDA version of your machine:\n```\n/usr/local/cuda/bin/nvcc --version\n```\nand ensure that it matches the CUDA version specified in the `env_setup.sh` file (`CUDA=cu121` by default). If it does not match, update `env_setup.sh` accordingly by changing both the `CUDA` and `TORCH` environment variables to compatible values as specified on [this website](https://github.com/pyg-team/pyg-lib).\n\nNext, set up the environment with the following command.\n\n```\nsource env_setup.sh\n```\nThis command installs the `TopoBenchmark` library and its dependencies. \n\n### Run Training Pipeline\n\nNext, train the neural networks by running the following command:\n\n```\npython -m topobenchmark \n```\n\nThanks to `hydra` implementation, one can easily override the default experiment configuration through the command line. For instance, the model and dataset can be selected as:\n\n```\npython -m topobenchmark model=cell/cwn dataset=graph/MUTAG\n```\n\n**Remark:** By default, our pipeline identifies the source and destination topological domains, and applies a default lifting between them if required.\n\nThe same CLI override mechanism also applies when modifying more finer configurations within a `CONFIG GROUP`. Please, refer to the official [`hydra`documentation](https://hydra.cc/docs/intro/) for further details.\n\n\n\n## :bike: Experiments Reproducibility\nTo reproduce Table 1 from the [`TopoBenchmark: A Framework for Benchmarking Topological Deep Learning`](https://arxiv.org/pdf/2406.06642) paper, please run the following command:\n\n```\nbash scripts/reproduce.sh\n```\n**Remark:** We have additionally provided a public [W\u0026B (Weights \u0026 Biases) project](https://wandb.ai/telyatnikov_sap/TopoBenchmark_main?nw=nwusertelyatnikov_sap) with logs for the corresponding runs (updated on June 11, 2024).\n\n\n## :anchor: Tutorials\n\nExplore our [tutorials](https://github.com/geometric-intelligence/TopoBenchmark/tree/main/tutorials) for further details on how to add new datasets, transforms/liftings, and benchmark tasks. \n\n## :gear: Neural Networks\n\nWe list the neural networks trained and evaluated by `TopoBenchmark`, organized by the topological domain over which they operate: graph, simplicial complex, cellular complex or hypergraph. Many of these neural networks were originally implemented in [`TopoModelX`](https://github.com/pyt-team/TopoModelX).\n\n\n### Graphs\n| Model | Reference |\n| --- | --- |\n| GAT | [Graph Attention Networks](https://openreview.net/pdf?id=rJXMpikCZ) |\n| GIN | [How Powerful are Graph Neural Networks?](https://openreview.net/pdf?id=ryGs6iA5Km) |\n| GCN | [Semi-Supervised Classification with Graph Convolutional Networks](https://arxiv.org/pdf/1609.02907v4) |\n| GraphMLP | [Graph-MLP: Node Classification without Message Passing in Graph](https://arxiv.org/pdf/2106.04051) |\n\n### Simplicial complexes\n| Model | Reference |\n| --- | --- |\n| SAN | [Simplicial Attention Neural Networks](https://arxiv.org/pdf/2203.07485) |\n| SCCN | [Efficient Representation Learning for Higher-Order Data with Simplicial Complexes](https://openreview.net/pdf?id=nGqJY4DODN) |\n| SCCNN | [Convolutional Learning on Simplicial Complexes](https://arxiv.org/pdf/2301.11163) |\n| SCN | [Simplicial Complex Neural Networks](https://ieeexplore.ieee.org/document/10285604) |\n\n### Cellular complexes\n| Model | Reference |\n| --- | --- |\n| CAN | [Cell Attention Network](https://arxiv.org/pdf/2209.08179) |\n| CCCN | Inspired by [A learning algorithm for computational connected cellular network](https://ieeexplore.ieee.org/document/1202221), implementation adapted from [Generalized Simplicial Attention Neural Networks](https://arxiv.org/abs/2309.02138)|\n| CXN | [Cell Complex Neural Networks](https://openreview.net/pdf?id=6Tq18ySFpGU) |\n| CWN | [Weisfeiler and Lehman Go Cellular: CW Networks](https://arxiv.org/pdf/2106.12575) |\n\n### Hypergraphs\n| Model | Reference |\n| --- | --- |\n| AllDeepSet | [You are AllSet: A Multiset Function Framework for Hypergraph Neural Networks](https://openreview.net/pdf?id=hpBTIv2uy_E) |\n| AllSetTransformer | [You are AllSet: A Multiset Function Framework for Hypergraph Neural Networks](https://openreview.net/pdf?id=hpBTIv2uy_E) |\n| EDGNN | [Equivariant Hypergraph Diffusion Neural Operators](https://arxiv.org/pdf/2207.06680) |\n| UniGNN | [UniGNN: a Unified Framework for Graph and Hypergraph Neural Networks](https://arxiv.org/pdf/2105.00956) |\n| UniGNN2 | [UniGNN: a Unified Framework for Graph and Hypergraph Neural Networks](https://arxiv.org/pdf/2105.00956) |\n\n### Combinatorial complexes\n| Model | Reference |\n| --- | --- |\n| GCCN | [TopoTune: A Framework for Generalized Combinatorial Complex Neural Networks](https://arxiv.org/pdf/2410.06530) |\n\n## :bulb: TopoTune\n\nWe include TopoTune, a comprehensive framework for easily defining and training new, general TDL models on any domain using any (graph) neural network ω as a backbone. The pre-print detailing this framework is [TopoTune: A Framework for Generalized Combinatorial Complex Neural Networks](https://arxiv.org/pdf/2410.06530). In a GCCN (pictured below), the input complex is represented as an ensemble of strictly augmented Hasse graphs, one per neighborhood of the complex. Each of these Hasse graphs is processed by a sub model ω, and the outputs are rank-wise aggregated in between layers. \n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"resources/gccn.jpg\" width=\"700\"\u003e\n\u003c/p\u003e\n\n### Defining and training a GCCN\nTo implement and train a GCCN, run the following command line with the desired choice of dataset, lifting domain (ex: `cell`, `simplicial`), PyTorch Geometric backbone model (ex: `GCN`, `GIN`, `GAT`, `GraphSAGE`) and parameters (ex. `model.backbone.GNN.num_layers=2`), neighborhood structure (routes), and other hyperparameters.\n\n\n```\npython -m topobenchmark \\\n    dataset=graph/PROTEINS \\\n    dataset.split_params.data_seed=1 \\\n    model=cell/topotune\\\n    model.tune_gnn=GCN \\\n    model.backbone.GNN.num_layers=2 \\\n    model.backbone.neighborhoods=\\[1-up_laplacian-0,1-down_incidence-2\\] \\\n    model.backbone.layers=4 \\\n    model.feature_encoder.out_channels=32 \\\n    model.feature_encoder.proj_dropout=0.3 \\\n    model.readout.readout_name=PropagateSignalDown \\\n    logger.wandb.project=TopoTune_cell \\\n    trainer.max_epochs=1000 \\\n    callbacks.early_stopping.patience=50 \\\n```\n\nTo use a single augmented Hasse graph expansion, use `model={domain}/topotune_onehasse` instead of `model={domain}/topotune`.\n\nTo specify a set of neighborhoods on the complex, use a list of neighborhoods each specified as a string of the form \n`r-{neighborhood}-k`, where $k$ represents the source cell rank, and $r$ is the number of ranks up or down that the selected `{neighborhood}` considers. Currently, the following options for `{neighborhood}` are supported:\n- `up_laplacian`, between cells of rank $k$ through $k+r$ cells.\n- `down_laplacian`, between cells of rank $k$ through $k-r$ cells.\n- `hodge_laplacian`, between cells of rank $k$ through both $k-r$ and $k+r$ cells.\n- `up_adjacency`, between cells of rank $k$ through $k+r$ cells.\n- `down_adjacency`, between cells of rank $k$ through $k-r$ cells.\n- `up_incidence`, from rank $k$ to $k+r$.\n- `down_incidence`, from rank $k$ to $k-r$.\n\nThe number $r$ can be omitted, in which case $r=1$ by default (e.g. `up_incidence-k` represents the incidence from rank $k$ to $k+1$).\n\n\n### Using backbone models from any package\nBy default, backbone models are imported from `torch_geometric.nn.models`. To import and specify a backbone model from any other package, such as `torch.nn.Transformer` or `dgl.nn.GATConv`, it is sufficient to 1) make sure the package is installed and 2) specify in the command line:\n\n```\nmodel.tune_gnn = {backbone_model}\nmodel.backbone.GNN._target_={package}.{backbone_model}\n```\n\n### Reproducing experiments\n\nWe provide scripts to reproduce experiments on a broad class of GCCNs in [`scripts/topotune`](scripts/topotune) and reproduce iterations of existing neural networks in [`scripts/topotune/existing_models`](scripts/topotune/existing_models), as previously reported in the [TopoTune paper](https://arxiv.org/pdf/2410.06530).\n\nWe invite users interested in running extensive sweeps on new GCCNs to replicate the `--multirun` flag in the scripts. This is a shortcut for running every possible combination of the specified parameters in a single command.\n\n## :rocket: Liftings\n\nWe list the liftings used in `TopoBenchmark` to transform datasets. Here, a _lifting_ refers to a function that transforms a dataset defined on a topological domain (_e.g._, on a graph) into the same dataset but supported on a different topological domain (_e.g._, on a simplicial complex).\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e Topology Liftings \u003c/b\u003e\u003c/summary\u003e\n\n### Graph2Simplicial\n| Name | Description | Reference |\n| --- | --- | --- |\n| CliqueLifting | The algorithm finds the cliques in the graph and creates simplices. Given a clique the first simplex added is the one containing all the nodes of the clique, then the simplices composed of all the possible combinations with one node missing, then two nodes missing, and so on, until all the possible pairs are added. Then the method moves to the next clique. | [Simplicial Complexes](https://en.wikipedia.org/wiki/Clique_complex) |\n| KHopLifting | For each node in the graph, take the set of its neighbors, up to k distance, and the node itself. These sets are then treated as simplices. The dimension of each simplex depends on the degree of the nodes. For example, a node with d neighbors forms a d-simplex. | [Neighborhood Complexes](https://arxiv.org/pdf/math/0512077) |\n\n### Graph2Cell\n| Name | Description | Reference |\n| --- | --- | --- |\n| CellCycleLifting |To lift a graph to a cell complex (CC) we proceed as follows. First, we identify a finite set of cycles (closed loops) within the graph. Second, each identified cycle in the graph is associated to a 2-cell, such that the boundary of the 2-cell is the cycle. The nodes and edges of the cell complex are inherited from the graph. | [Appendix B](https://arxiv.org/abs/2206.00606) |\n\n### Graph2Hypergraph\n| Name | Description | Reference |\n| --- | --- | --- |\n| KHopLifting | For each node in the graph, the algorithm finds the set of nodes that are at most k connections away from the initial node. This set is then used to create an hyperedge. The process is repeated for all nodes in the graph. | [Section 3.4](https://ieeexplore.ieee.org/abstract/document/9264674) |\n| KNearestNeighborsLifting | For each node in the graph, the method finds the k nearest nodes by using the Euclidean distance between the vectors of features. The set of k nodes found is considered as an hyperedge. The proces is repeated for all nodes in the graph. | [Section 3.1](https://ieeexplore.ieee.org/abstract/document/9264674) |\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e Feature Liftings \u003cb\u003e\u003c/summary\u003e\n\n| Name                | Description                                                                 | Supported Domains |\n|---------------------|-----------------------------------------------------------------------------|-------------------|\n| ProjectionSum       | Projects r-cell features of a graph to r+1-cell structures utilizing incidence matrices \\(B_{r}\\). | Simplicial, Cell  |\n| ConcatenationLifting | Concatenate r-cell features to obtain r+1-cell features.                   | Simplicial        |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003e Data Transformations \u003cb\u003e\u003c/summary\u003e\n\n| Transform | Description | Reference |\n| --- | --- | --- |\n| Message Passing Homophily | Higher-order homophily measure for hypergraphs | [Source](https://arxiv.org/abs/2310.07684) |\n| Group Homophily | Higher-order homophily measure for hypergraphs that considers groups of predefined sizes  | [Source](https://arxiv.org/abs/2103.11818) |\n\u003c/details\u003e\n\n## :books: Datasets\n\n### Graphs\n| Dataset | Task | Description | Reference |\n| --- | --- | --- | --- |\n| Cora | Classification | Cocitation dataset. | [Source](https://link.springer.com/article/10.1023/A:1009953814988) |\n| Citeseer | Classification | Cocitation dataset. | [Source](https://dl.acm.org/doi/10.1145/276675.276685) |\n| Pubmed | Classification | Cocitation dataset. | [Source](https://ojs.aaai.org/aimagazine/index.php/aimagazine/article/view/2157) |\n| MUTAG | Classification | Graph-level classification. | [Source](https://pubs.acs.org/doi/abs/10.1021/jm00106a046) |\n| PROTEINS | Classification | Graph-level classification. | [Source](https://academic.oup.com/bioinformatics/article/21/suppl_1/i47/202991) |\n| NCI1 | Classification | Graph-level classification. | [Source](https://ieeexplore.ieee.org/document/4053093) |\n| NCI109 | Classification | Graph-level classification. | [Source](https://arxiv.org/pdf/2007.08663) |\n| IMDB-BIN | Classification | Graph-level classification. | [Source](https://dl.acm.org/doi/10.1145/2783258.2783417) |\n| IMDB-MUL | Classification | Graph-level classification. | [Source](https://dl.acm.org/doi/10.1145/2783258.2783417) |\n| REDDIT | Classification | Graph-level classification. | [Source](https://proceedings.neurips.cc/paper_files/paper/2017/file/5dd9db5e033da9c6fb5ba83c7a7ebea9-Paper.pdf) |\n| Amazon | Classification | Heterophilic dataset. | [Source](https://arxiv.org/pdf/1205.6233) |\n| Minesweeper | Classification | Heterophilic dataset. | [Source](https://arxiv.org/pdf/2302.11640) |\n| Empire | Classification | Heterophilic dataset. | [Source](https://arxiv.org/pdf/2302.11640) |\n| Tolokers | Classification | Heterophilic dataset. | [Source](https://arxiv.org/pdf/2302.11640) |\n| US-county-demos | Regression | In turn each node attribute is used as the target label. | [Source](https://arxiv.org/pdf/2002.08274) |\n| ZINC | Regression | Graph-level regression. | [Source](https://pubs.acs.org/doi/10.1021/ci3001277) |\n\n### Hypergraphs\n| Dataset | Task | Description | Reference |\n| --- | --- | --- | --- |\n| Cora-Cocitation | Classification | Cocitation dataset. | [Source](https://proceedings.neurips.cc/paper_files/paper/2019/file/1efa39bcaec6f3900149160693694536-Paper.pdf) |\n| Citeseer-Cocitation | Classification | Cocitation dataset. | [Source](https://proceedings.neurips.cc/paper_files/paper/2019/file/1efa39bcaec6f3900149160693694536-Paper.pdf) |\n| PubMed-Cocitation | Classification | Cocitation dataset. | [Source](https://proceedings.neurips.cc/paper_files/paper/2019/file/1efa39bcaec6f3900149160693694536-Paper.pdf) |\n| Cora-Coauthorship | Classification | Cocitation dataset. | [Source](https://proceedings.neurips.cc/paper_files/paper/2019/file/1efa39bcaec6f3900149160693694536-Paper.pdf) |\n| DBLP-Coauthorship | Classification | Cocitation dataset. | [Source](https://proceedings.neurips.cc/paper_files/paper/2019/file/1efa39bcaec6f3900149160693694536-Paper.pdf) |\n\n\n\n## :mag: References ##\n\nTo learn more about `TopoBenchmark`, we invite you to read the paper:\n\n```\n@article{telyatnikov2024topobenchmark,\n      title={TopoBenchmark: A Framework for Benchmarking Topological Deep Learning}, \n      author={Lev Telyatnikov and Guillermo Bernardez and Marco Montagna and Pavlo Vasylenko and Ghada Zamzmi and Mustafa Hajij and Michael T Schaub and Nina Miolane and Simone Scardapane and Theodore Papamarkou},\n      year={2024},\n      eprint={2406.06642},\n      archivePrefix={arXiv},\n      primaryClass={cs.LG},\n      url={https://arxiv.org/abs/2406.06642}, \n}\n```\nIf you find `TopoBenchmark` useful, we would appreciate if you cite us!\n\n\n\n## :mouse: Additional Details\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eHierarchy of configuration files\u003c/b\u003e\u003c/summary\u003e\n\n```\n├── configs                   \u003c- Hydra configs\n│   ├── callbacks                \u003c- Callbacks configs\n│   ├── dataset                  \u003c- Dataset configs\n│   │   ├── graph                    \u003c- Graph dataset configs\n│   │   ├── hypergraph               \u003c- Hypergraph dataset configs\n│   │   └── simplicial               \u003c- Simplicial dataset configs\n│   ├── debug                    \u003c- Debugging configs\n│   ├── evaluator                \u003c- Evaluator configs\n│   ├── experiment               \u003c- Experiment configs\n│   ├── extras                   \u003c- Extra utilities configs\n│   ├── hparams_search           \u003c- Hyperparameter search configs\n│   ├── hydra                    \u003c- Hydra configs\n│   ├── local                    \u003c- Local configs\n│   ├── logger                   \u003c- Logger configs\n│   ├── loss                     \u003c- Loss function configs\n│   ├── model                    \u003c- Model configs\n│   │   ├── cell                     \u003c- Cell model configs\n│   │   ├── graph                    \u003c- Graph model configs\n│   │   ├── hypergraph               \u003c- Hypergraph model configs\n│   │   └── simplicial               \u003c- Simplicial model configs\n│   ├── optimizer                \u003c- Optimizer configs\n│   ├── paths                    \u003c- Project paths configs\n│   ├── scheduler                \u003c- Scheduler configs\n│   ├── trainer                  \u003c- Trainer configs\n│   ├── transforms               \u003c- Data transformation configs\n│   │   ├── data_manipulations       \u003c- Data manipulation transforms\n│   │   ├── dataset_defaults         \u003c- Default dataset transforms\n│   │   ├── feature_liftings         \u003c- Feature lifting transforms\n│   │   └── liftings                 \u003c- Lifting transforms\n│   │       ├── graph2cell               \u003c- Graph to cell lifting transforms\n│   │       ├── graph2hypergraph         \u003c- Graph to hypergraph lifting transforms\n│   │       ├── graph2simplicial         \u003c- Graph to simplicial lifting transforms\n│   │       ├── graph2cell_default.yaml  \u003c- Default graph to cell lifting config\n│   │       ├── graph2hypergraph_default.yaml \u003c- Default graph to hypergraph lifting config\n│   │       ├── graph2simplicial_default.yaml \u003c- Default graph to simplicial lifting config\n│   │       ├── no_lifting.yaml           \u003c- No lifting config\n│   │       ├── custom_example.yaml       \u003c- Custom example transform config\n│   │       └── no_transform.yaml         \u003c- No transform config\n│   ├── wandb_sweep              \u003c- Weights \u0026 Biases sweep configs\n│   │\n│   ├── __init__.py              \u003c- Init file for configs module\n│   └── run.yaml               \u003c- Main config for training\n```\n\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003e More information regarding Topological Deep Learning \u003c/b\u003e\u003c/summary\u003e\n  \n  [Topological Graph Signal Compression](https://arxiv.org/pdf/2308.11068)\n  \n  [Architectures of Topological Deep Learning: A Survey on Topological Neural Networks](https://par.nsf.gov/servlets/purl/10477141)\n  \n  [TopoX: a suite of Python packages for machine learning on topological domains](https://arxiv.org/pdf/2402.02441)\t\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeometric-intelligence%2Ftopobenchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeometric-intelligence%2Ftopobenchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeometric-intelligence%2Ftopobenchmark/lists"}