Skip to content

Track: Track1; Team name: TJPaik; Model: Neural Sheaf Diffusion (NSD)#332

Open
TJPaik wants to merge 6 commits into
geometric-intelligence:mainfrom
TJPaik:tdl2026/nsd
Open

Track: Track1; Team name: TJPaik; Model: Neural Sheaf Diffusion (NSD)#332
TJPaik wants to merge 6 commits into
geometric-intelligence:mainfrom
TJPaik:tdl2026/nsd

Conversation

@TJPaik

@TJPaik TJPaik commented May 25, 2026

Copy link
Copy Markdown

Checklist

  • My pull request has a clear and explanatory title.
  • My pull request passes the Linting test.
  • I added appropriate unit tests and I made sure the code passes all unit tests. (refer to comment below)
  • My PR follows PEP8 guidelines. (refer to comment below)
  • My code is properly documented, using numpy docs conventions, and I made sure the documentation renders properly.
  • I linked to issues and PRs that are relevant to this PR.

Description

Updates the existing TopoBench Neural Sheaf Diffusion integration for TDL Challenge 2026 Track 1 compatibility (model=graph/nsd), rather than introducing a new model from scratch.

Reference:

Implemented and verified:

  • bundle-sheaf default config for graph/nsd
  • direct graph input compatibility
  • explicit sheaf stalk-dimension validation (d requirements and hidden_dim % d == 0)
  • shared feature-dimension resolver support for CombinedPSEs on scalar and list-valued num_features
  • expanded NSD unit coverage and pipeline smoke-test wiring
  • challenge notebook MODEL_CONFIG set to graph/nsd

Validation:

  • PYENV_VERSION=TDL python -m pytest test/nn/backbones/graph/test_nsd.py -q -> 56 passed
  • PYENV_VERSION=TDL python -m pytest test/utils/test_config_resolvers.py -q -> 41 passed
  • PYENV_VERSION=TDL python -m pytest test/pipeline/test_pipeline.py -q with baseline smoke models plus graph/nsd -> 1 passed
  • focused ruff on PR-touched Python files -> passed
  • focused coverage for topobench/nn/backbones/graph/nsd.py -> 100%
  • official challenge sanity grid for model_config="graph/nsd" -> all 24 configs exercised successfully

results.json status: committed at 2026_tdl_challenge/outputs/nsd/results.json with 72 completed challenge runs across train seeds 42, 43, and 44.

results.json provenance: generated from the checked-in 2026_tdl_challenge/utils.py helpers via CLI with model_config="graph/nsd"; run_evaluation.ipynb now sets the same MODEL_CONFIG.

Issue

TDL Challenge 2026 Track 1 model submission for Neural Sheaf Diffusion.

Additional context

Official results.json artifact is included in this PR.

This PR deliberately keeps the NSD adaptation close to the existing TopoBench NSD code path and makes it GraphUniverse-compatible: direct Data/object inputs, self-loop removal plus undirected edge conversion, output-channel metadata, and the challenge default config.

Limitation: NSDEncoder.forward accepts edge_attr and edge_weight for wrapper/API compatibility, but this NSD adaptation ignores them and builds the sheaf Laplacian from edge_index only.

Global resolver note: graph/nsd uses model-default CombinedPSEs (LapPE=10 and RWSE=10, both concatenated to node features). The shared infer_in_channels update makes that +20 node-feature dimension apply consistently when dataset.parameters.num_features is list-valued as well as scalar; for example MUTAG [7, 4] resolves to [27], while GraphUniverse scalar 15 resolves to [35]. This keeps AllCellFeatureEncoder input sizes aligned with transformed x_0. Targeted regression tests now compose model=graph/nsd with dataset=graph/MUTAG and dataset=graph/graphuniverse_inductive, checking the resolved input channels are [27] and [35], respectively.

@TJPaik TJPaik marked this pull request as ready for review May 25, 2026 18:18
@TJPaik TJPaik marked this pull request as draft May 25, 2026 22:58
@review-notebook-app

Copy link
Copy Markdown

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

@TJPaik TJPaik marked this pull request as ready for review May 26, 2026 00:04
@LouisVanLangendonck LouisVanLangendonck added the track-1-gnn 2026 Topological Deep Learning Challenge -- Track 1 GNNs label May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

track-1-gnn 2026 Topological Deep Learning Challenge -- Track 1 GNNs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants