Problem Statement:
Currently, when generating flexible graphs for irregular or sparse data, there is no built-in automated way to verify if the resulting graph is 'well-balanced' (e.g., detecting nodes with extremely high/low degrees or isolated components) before passing it to neural-lam.
Proposed Solution:
I propose adding a diagnostic utility (e.g., in visualise/diagnostics.py or as part of the validation layer) that automatically calculates and reports:
Node Degree Distribution: To ensure message passing remains stable across the grid.
Connectivity Check: Identifying isolated nodes or disconnected clusters that could lead to NaN losses during training.
Spatial Density Mapping: A visualization helper to see how graph density aligns with the input data grid.
Impact:
This will significantly help contributors (like myself) who are working on Project 1 (Flexible Graph Construction) to benchmark different strategies (kNN, Radius, etc.) and ensure they meet the 'well-balanced' criteria mentioned in the GSoC ideas.
I’m happy to start drafting a PR for this if the maintainers agree this is a useful direction!
@joel Oskarsson @hauke Schulz @leif Denby.
Problem Statement:
Currently, when generating flexible graphs for irregular or sparse data, there is no built-in automated way to verify if the resulting graph is 'well-balanced' (e.g., detecting nodes with extremely high/low degrees or isolated components) before passing it to neural-lam.
Proposed Solution:
I propose adding a diagnostic utility (e.g., in visualise/diagnostics.py or as part of the validation layer) that automatically calculates and reports:
Node Degree Distribution: To ensure message passing remains stable across the grid.
Connectivity Check: Identifying isolated nodes or disconnected clusters that could lead to NaN losses during training.
Spatial Density Mapping: A visualization helper to see how graph density aligns with the input data grid.
Impact:
This will significantly help contributors (like myself) who are working on Project 1 (Flexible Graph Construction) to benchmark different strategies (kNN, Radius, etc.) and ensure they meet the 'well-balanced' criteria mentioned in the GSoC ideas.
I’m happy to start drafting a PR for this if the maintainers agree this is a useful direction!
@joel Oskarsson @hauke Schulz @leif Denby.