Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sumbission dl2 #4

Open
wants to merge 117 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
b9f3a01
blogpost.md added
XVmecha May 19, 2024
52d2f93
ADD: Vietoris-Ripss lift base code
martin-carrasco May 17, 2024
640cb99
ADD: EMPSN general structure
martin-carrasco May 17, 2024
f4dfb77
ADD: Invariance support as edge attributes, communication to higher r…
martin-carrasco May 18, 2024
727ca44
ADD: Pooling fix
martin-carrasco May 18, 2024
5918c26
ADD: Mean projection for feature lifting
martin-carrasco May 18, 2024
70572ff
ADD: Projects and vietoris rips to list of transforms
martin-carrasco May 18, 2024
63978c3
ADD: Mean lifting to list and change vietoris rips name and basic tes…
martin-carrasco May 18, 2024
19e7e8b
FIX: Rename files and small fixes
martin-carrasco May 18, 2024
3ba714a
FIX: Econv to reflect the actual convolution
martin-carrasco May 20, 2024
aad1202
ADD: Scatter aggregation procedure
martin-carrasco May 20, 2024
430e87a
FIX: EMPSN layer with aggregation and new convolution operation
martin-carrasco May 20, 2024
9be86c2
FIX: EMPSN general with updated MLPs
martin-carrasco May 20, 2024
09b6174
ADD: Invariants to utils file
martin-carrasco May 20, 2024
cf8b1c2
ADD: Actual lifting taking the mean out of lower dimensional embeddings
martin-carrasco May 20, 2024
7a1e50c
FIX: Lift typos
martin-carrasco May 20, 2024
ffaa458
FIX: Imports in message passing
martin-carrasco May 20, 2024
fec2b7d
FIX: imports
martin-carrasco May 20, 2024
f74a430
ADD: CHanges for training
martin-carrasco May 20, 2024
d58e9c8
FIX: conv weights sigmoid and final message
martin-carrasco May 21, 2024
dff8999
FIX: Ranking, batching, pooling and naming for ditionary
martin-carrasco May 21, 2024
03718c2
FIX: Naming ixtionary and diferent things
martin-carrasco May 21, 2024
5cd4261
ADD: Utilities for training loop
martin-carrasco May 21, 2024
afdc10f
FIX: invariance calculations
martin-carrasco May 22, 2024
26e532e
ADD: Base invariance calculations
martin-carrasco May 22, 2024
847aeac
ADD: Lifting that includes invariances
martin-carrasco May 22, 2024
066e94b
ADD: Switch VR-lift to invariance
martin-carrasco May 22, 2024
5610327
ADD: Base alpha complex lift
martin-carrasco May 22, 2024
69d4984
FIX: main calculations for invariances
martin-carrasco May 22, 2024
bc275be
FIX: Remove prints
martin-carrasco May 22, 2024
14cbef3
ADD: Alpha transform
martin-carrasco May 22, 2024
0225879
FIX: Batch unit decomposition and some main stuff
martin-carrasco May 22, 2024
aadbce1
FIX: Debug false
martin-carrasco May 22, 2024
e5eef64
FIX: Add biases to conv
martin-carrasco May 23, 2024
010463b
FIX: Aggregations
martin-carrasco May 23, 2024
6a7d456
FIX: Loop
martin-carrasco May 23, 2024
6cc1da2
ADD: Feature lifting for elemtent wise mean
martin-carrasco May 23, 2024
2b65af0
FIX: ADd indexes for lifitng
martin-carrasco May 23, 2024
750b7ce
ADD: Lifting for mean in the test
martin-carrasco May 23, 2024
4cf0d58
FIX: Invariances
martin-carrasco May 23, 2024
ba45b69
FIX: Alpha complex lift
martin-carrasco May 23, 2024
6b93d8a
ADD: Filtering function for AlphaComplex
martin-carrasco May 23, 2024
c485383
ADD: Alpha complex application
martin-carrasco May 23, 2024
2308421
ADD: Deactivate debug option
martin-carrasco May 23, 2024
b8c461c
FIX: Remove un-used code
martin-carrasco May 24, 2024
c25b77a
ADD: Modes of execution where invariances are calculated during runti…
martin-carrasco May 24, 2024
d62b586
jobs
nordinbelkacemi May 23, 2024
dd47240
jobs
nordinbelkacemi May 23, 2024
ae61f46
FIX: Debugging
martin-carrasco May 26, 2024
a6d0c25
FIX: Batch y to device
martin-carrasco May 26, 2024
26f3aca
FIX: Batch
martin-carrasco May 26, 2024
a264368
ADD:Readme
martin-carrasco May 26, 2024
f0a83b8
Merge pull request #1 from martin-carrasco/sumbission_dl2
martin-carrasco May 26, 2024
a908658
FIX: Move batch decomposition to actually make sense
martin-carrasco May 27, 2024
97eab64
FIX: Faster calculation for invariances
martin-carrasco May 27, 2024
9706eea
FIX: Second part of batch decomposition
martin-carrasco May 27, 2024
6701390
FIX: Rework to make minibatching work
martin-carrasco May 27, 2024
bb1c09d
WIP: Fixing AlphaComplex
martin-carrasco May 27, 2024
50b464e
blogpost added
nordinbelkacemi May 27, 2024
fb6bd7f
FIX: train files
martin-carrasco May 27, 2024
d43566e
Merge branch 'sumbission_dl2' of github.com:martin-carrasco/challenge…
martin-carrasco May 27, 2024
97b3e8f
Add files via upload
XVmecha May 28, 2024
30b9d0b
Add files via upload
XVmecha May 28, 2024
99aa8ca
Add files via upload
XVmecha May 28, 2024
5183cad
Add files via upload
XVmecha May 28, 2024
84d0de1
FIX: Paths and alpha complex
martin-carrasco May 28, 2024
923bdf5
Merge branch 'sumbission_dl2' of github.com:martin-carrasco/challenge…
martin-carrasco May 28, 2024
27a16f0
FIX: Name of wndb project
martin-carrasco May 28, 2024
0b1b9f9
ADD: Refactor for integrating even further into TopoX framework
martin-carrasco May 28, 2024
807c340
ADD: Test for vietoris ripps
martin-carrasco May 28, 2024
21a4b0f
FIX: Order in shuffling
martin-carrasco May 28, 2024
bd3e480
ADD: Debug
martin-carrasco May 28, 2024
789946c
ADD: Debug
martin-carrasco May 28, 2024
11b266c
Try of a fix on batch pos
martin-carrasco May 28, 2024
efd06a2
FIX: Initi of tensor
martin-carrasco May 28, 2024
eda80f6
Add files via upload
XVmecha May 29, 2024
c47e5df
Add files via upload
XVmecha May 29, 2024
01d5ed9
ADD: Support for pytorch lightning
martin-carrasco May 29, 2024
d9302db
ADD: FIx move to cuda
martin-carrasco May 29, 2024
fcc4f81
FIX: Do not log models
martin-carrasco May 29, 2024
721900b
Add files via upload
XVmecha May 30, 2024
970e060
FIX: DIsable checkpoints and batch size
martin-carrasco May 30, 2024
15e3680
got started on manual tex->md conversion
nordinbelkacemi Jun 1, 2024
a5d4f43
merge
nordinbelkacemi Jun 1, 2024
4c7d66a
progress on md
nordinbelkacemi Jun 2, 2024
5c74a26
operatornames changed
nordinbelkacemi Jun 2, 2024
37dd6e8
message passing math test
nordinbelkacemi Jun 2, 2024
7c8878a
math test
nordinbelkacemi Jun 2, 2024
4d4b73c
math test again
nordinbelkacemi Jun 2, 2024
b3954b5
idk wtf is wrong with github's math renderer
nordinbelkacemi Jun 2, 2024
1a5dda0
some more progress. math still won't render correctly in some places …
nordinbelkacemi Jun 2, 2024
9a91c28
Update blogpost.md
XVmecha Jun 3, 2024
90abac5
Update blogpost.md
XVmecha Jun 3, 2024
22c5554
Update blogpost.md
XVmecha Jun 3, 2024
4caf1c6
Update blogpost.md
XVmecha Jun 3, 2024
0139bc2
Update blogpost.md
XVmecha Jun 3, 2024
e6da936
Update blogpost.md
XVmecha Jun 3, 2024
40af755
Update blogpost.md
XVmecha Jun 3, 2024
38e5044
test
nordinbelkacemi Jun 3, 2024
4ceb792
merge
nordinbelkacemi Jun 3, 2024
acac794
test 2
nordinbelkacemi Jun 3, 2024
6ab7184
test 2
nordinbelkacemi Jun 3, 2024
e869e8f
test 4
nordinbelkacemi Jun 3, 2024
b844a3b
test 5
nordinbelkacemi Jun 3, 2024
92a2078
test 6
nordinbelkacemi Jun 3, 2024
d0f9475
test 7
nordinbelkacemi Jun 3, 2024
fa6bd3a
test 8
nordinbelkacemi Jun 3, 2024
51fb77b
test 9
nordinbelkacemi Jun 3, 2024
7ec84f3
test 10
nordinbelkacemi Jun 3, 2024
7c68627
test 11
nordinbelkacemi Jun 3, 2024
b0f27d1
test 12
nordinbelkacemi Jun 3, 2024
bca9e3f
test 13
nordinbelkacemi Jun 3, 2024
46270d5
test 14
nordinbelkacemi Jun 3, 2024
b6187f5
test 16
nordinbelkacemi Jun 3, 2024
769bfb5
test 17
nordinbelkacemi Jun 3, 2024
35ee7bd
test 18
nordinbelkacemi Jun 3, 2024
2c75308
Merge of the code
martin-carrasco Jun 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -165,4 +165,9 @@ cython_debug/
#.idea/

# VS Code
.vscode/
.vscode/

jobs/outputs/

*.tex
*.bib
86 changes: 25 additions & 61 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,78 +1,42 @@
# ICML Topological Deep Learning Challenge 2024: Beyond the Graph Domain
Official repository for the Topological Deep Learning Challenge 2024, jointly organized by [TAG-DS](https://www.tagds.com) & PyT-Team and hosted by the [Geometry-grounded Representation Learning and Generative Modeling (GRaM) Workshop](https://gram-workshop.github.io) at ICML 2024.
# DL 2 Project - Reproduction of E(n) Equivariant Simplicial Message Passing Network

## Relevant Information
- The deadline is **July 12th, 2024 (Anywhere on Earth)**. Participants are welcome to modify their submissions until this time.
- Please, check out the [main webpage of the challenge](https://pyt-team.github.io/packs/challenge.html) for the full description of the competition (motivation, submission requirements, evaluation, etc.)
This project is meant to showcase the effort in replication the paper of Eijkelboom et al about message passing along simplices. Our aim was to re-implement the proposed network architecture in the up and comming TopoX package suite. This suite is a newly developed set of packages that facilitate the pipeline of Topological Deep Learning, from lifting techniques to actual models of message passing.

## Brief Description
The main purpose of the challenge is to further expand the current scope and impact of Topological Deep Learning (TDL), enabling the exploration of its applicability in new contexts and scenarios. To do so, we propose participants to design and implement lifting mappings between different data structures and topological domains (point-clouds, graphs, hypergraphs, simplicial/cell/combinatorial complexes), potentially bridging the gap between TDL and all kinds of existing datasets.
## Setup
To setup from a clean environment we will reproduce the steps as mentioned in the `challenge-icml-2024` and an additional one.


## General Guidelines
Everyone can participate and participation is free --only principal PyT-Team developers are excluded. It is sufficient to:
- Send a valid Pull Request (i.e. passing all tests) before the deadline.
- Respect Submission Requirements (see below).

Teams are accepted, and there is no restriction on the number of team members. An acceptable Pull Request automatically subscribes a participant/team to the challenge.

We encourage participants to start submitting their Pull Request early on, as this helps addressing potential issues with the code. Moreover, earlier Pull Requests will be given priority consideration in the case of multiple submissions of similar quality implementing the same lifting.

A Pull Request should contain no more than one lifting. However, there is no restriction on the number of submissions (Pull Requests) per participant/team.

## Basic Setup
To develop 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:
1. Create the conda environment to be used
```bash
conda create -n topox python=3.11.3
conda activate topox
```

Then:

1. Clone a copy of tmx from source:

```bash
git clone git@github.com:pyt-team/challenge-icml-2024.git
cd challenge-icml-2024
```

2. Install tmx in editable mode:

2. Install the required packages and the TopoX suite including the code reqquiremed from the `challenge-icml-2024` repo
```bash
pip install -e '.[all]'
```
**Notes:**
- Requires pip >= 21.3. Refer: [PEP 660](https://peps.python.org/pep-0660/).
- On Windows, use `pip install -e .[all]` instead (without quotes around `[all]`).

4. Install torch, torch-scatter, torch-sparse with or without CUDA depending on your needs.
3. Install pytorch related libraries

```bash
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
pip install torch==2.0.1 --extra-index-url https://download.pytorch.org/whl/cu115
pip install torch-scatter torch-sparse -f https://data.pyg.org/whl/torch-2.0.1+cu115.html
pip install torch-cluster -f https://data.pyg.org/whl/torch-2.0.0+cu115.html
```
4. Wandb for saving model information
```bash
pip install wandb
```
## Experiments

where `${CUDA}` should be replaced by either `cpu`, `cu102`, `cu113`, or `cu115` depending on your PyTorch installation (`torch.version.cuda`).
There are two important directions the experiments follow: execution efficiency, performance of the network.
First, we will evaluate the efficiency of the lifting procedure for different complexes (Alpha Complex, Vietoris-Rips), the efficiency of pre-computing the invariance relationships prior to the forward pass and the actual
performance in the QM9 dataset.

5. Ensure that you have a working tmx installation by running the entire test suite with

```bash
pytest
```

In case an error occurs, please first check if all sub-packages ([`torch-scatter`](https://github.com/rusty1s/pytorch_scatter), [`torch-sparse`](https://github.com/rusty1s/pytorch_sparse), [`torch-cluster`](https://github.com/rusty1s/pytorch_cluster) and [`torch-spline-conv`](https://github.com/rusty1s/pytorch_spline_conv)) are on its latest reported version.

6. Install pre-commit hooks:

```bash
pre-commit install
```
To execute an experiment activate the `topox` environment created above and go into `src`. The file `main.py` will
run the experiment, some optional paramters are explained below.

## Questions
+ `--lift_type <lift>`: the type of lifting procedure `alpha` or `rips`
+ `--batch_size <size>` the size of each batch
+ `--target_name <name>`: the target molecular property to train/predict for
+ `--debug `: to run a smaller subset of the dataset for testing purpouses
+ `--pre_proc`: wether the invariances should be precomputed during the lift procedure or not (beware it's vary time consuming)

Feel free to contact us through GitHub issues on this repository, or through the [Geometry and Topology in Machine Learning slack](https://tda-in-ml.slack.com/join/shared_invite/enQtOTIyMTIyNTYxMTM2LTA2YmQyZjVjNjgxZWYzMDUyODY5MjlhMGE3ZTI1MzE4NjI2OTY0MmUyMmQ3NGE0MTNmMzNiMTViMjM2MzE4OTc#/). Alternatively, you can contact us via mail at any of these accounts: guillermo.bernardez@upc.edu, lev.telyatnikov@uniroma1.it.
78 changes: 78 additions & 0 deletions README_backup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# ICML Topological Deep Learning Challenge 2024: Beyond the Graph Domain
Official repository for the Topological Deep Learning Challenge 2024, jointly organized by [TAG-DS](https://www.tagds.com) & PyT-Team and hosted by the [Geometry-grounded Representation Learning and Generative Modeling (GRaM) Workshop](https://gram-workshop.github.io) at ICML 2024.

## Relevant Information
- The deadline is **July 12th, 2024 (Anywhere on Earth)**. Participants are welcome to modify their submissions until this time.
- Please, check out the [main webpage of the challenge](https://pyt-team.github.io/packs/challenge.html) for the full description of the competition (motivation, submission requirements, evaluation, etc.)

## Brief Description
The main purpose of the challenge is to further expand the current scope and impact of Topological Deep Learning (TDL), enabling the exploration of its applicability in new contexts and scenarios. To do so, we propose participants to design and implement lifting mappings between different data structures and topological domains (point-clouds, graphs, hypergraphs, simplicial/cell/combinatorial complexes), potentially bridging the gap between TDL and all kinds of existing datasets.


## General Guidelines
Everyone can participate and participation is free --only principal PyT-Team developers are excluded. It is sufficient to:
- Send a valid Pull Request (i.e. passing all tests) before the deadline.
- Respect Submission Requirements (see below).

Teams are accepted, and there is no restriction on the number of team members. An acceptable Pull Request automatically subscribes a participant/team to the challenge.

We encourage participants to start submitting their Pull Request early on, as this helps addressing potential issues with the code. Moreover, earlier Pull Requests will be given priority consideration in the case of multiple submissions of similar quality implementing the same lifting.

A Pull Request should contain no more than one lifting. However, there is no restriction on the number of submissions (Pull Requests) per participant/team.

## Basic Setup
To develop 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:
```bash
conda create -n topox python=3.11.3
conda activate topox
```

Then:

1. Clone a copy of tmx from source:

```bash
git clone git@github.com:pyt-team/challenge-icml-2024.git
cd challenge-icml-2024
```

2. Install tmx in editable mode:

```bash
pip install -e '.[all]'
```
**Notes:**
- Requires pip >= 21.3. Refer: [PEP 660](https://peps.python.org/pep-0660/).
- On Windows, use `pip install -e .[all]` instead (without quotes around `[all]`).

4. Install torch, torch-scatter, torch-sparse with or without CUDA depending on your needs.

```bash
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 either `cpu`, `cu102`, `cu113`, or `cu115` depending on your PyTorch installation (`torch.version.cuda`).

5. Ensure that you have a working tmx installation by running the entire test suite with

```bash
pytest
```

In case an error occurs, please first check if all sub-packages ([`torch-scatter`](https://github.com/rusty1s/pytorch_scatter), [`torch-sparse`](https://github.com/rusty1s/pytorch_sparse), [`torch-cluster`](https://github.com/rusty1s/pytorch_cluster) and [`torch-spline-conv`](https://github.com/rusty1s/pytorch_spline_conv)) are on its latest reported version.

6. Install pre-commit hooks:

```bash
pre-commit install
```

## Questions

Feel free to contact us through GitHub issues on this repository, or through the [Geometry and Topology in Machine Learning slack](https://tda-in-ml.slack.com/join/shared_invite/enQtOTIyMTIyNTYxMTM2LTA2YmQyZjVjNjgxZWYzMDUyODY5MjlhMGE3ZTI1MzE4NjI2OTY0MmUyMmQ3NGE0MTNmMzNiMTViMjM2MzE4OTc#/). Alternatively, you can contact us via mail at any of these accounts: guillermo.bernardez@upc.edu, lev.telyatnikov@uniroma1.it.
Loading
Loading