Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
780 changes: 780 additions & 0 deletions 2026_tdl_challenge/analysis_gread.ipynb

Large diffs are not rendered by default.

5,272 changes: 5,272 additions & 0 deletions 2026_tdl_challenge/outputs/2026-08-02_gread-vc/results.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion 2026_tdl_challenge/run_evaluation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"outputs": [],
"source": [
"# Your model configuration (e.g., \"graph/gcn\", \"graph/gin\", \"graph/gat\")\n",
"MODEL_CONFIG = \"graph/gin\""
"MODEL_CONFIG = \"graph/gread\""
]
},
{
Expand Down
50 changes: 50 additions & 0 deletions configs/model/graph/gread.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
_target_: topobench.model.TBModel

model_name: gread
model_domain: graph

feature_encoder:
_target_: topobench.nn.encoders.${model.feature_encoder.encoder_name}
encoder_name: AllCellFeatureEncoder
in_channels: ${infer_in_channels:${dataset},${oc.select:transforms,null}}
out_channels: 64
proj_dropout: 0.0

backbone:
_target_: topobench.nn.backbones.GREAD
in_channels: ${model.feature_encoder.out_channels}
hidden_channels: ${model.feature_encoder.out_channels}
reaction_term: bspm # GREAD-BS. Options: bspm, fisher, allen-cahn, zeldovich, st, fb, fb3, none
time: 3.0
step_size: 1.0
# Per-channel reaction gate (the "(VC)" variants of the paper); every
# tuned dataset configuration in the reference implementation's
# src/gread_params.py sets beta_diag: true.
beta_diag: true
add_source: false
data_norm: rw
self_loop_weight: 1.0
# Terminal ReLU pinned explicitly for the submitted benchmark runs
# (the constructor default is false, matching the reference CLI default).
xn_activation: true
input_dropout: 0.0
dropout: 0.0

backbone_wrapper:
_target_: topobench.nn.wrappers.GNNWrapper
_partial_: true
wrapper_name: GNNWrapper
out_channels: ${model.feature_encoder.out_channels}
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}}

readout:
_target_: topobench.nn.readouts.${model.readout.readout_name}
readout_name: NoReadOut # Use <NoReadOut> in case readout is not needed Options: PropagateSignalDown
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}} # The highest order of cell dimensions to consider
hidden_dim: ${model.feature_encoder.out_channels}
out_channels: ${dataset.parameters.num_classes}
task_level: ${define_task_level:${dataset.parameters.task_level},${dataset.split_params.learning_setting}} # Handles the edge case of node-inductive task
pooling_type: sum

# compile model for faster training with pytorch 2.0
compile: false
47 changes: 47 additions & 0 deletions configs/model/graph/gread_allen_cahn.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
_target_: topobench.model.TBModel

model_name: gread_allen_cahn
model_domain: graph

feature_encoder:
_target_: topobench.nn.encoders.${model.feature_encoder.encoder_name}
encoder_name: AllCellFeatureEncoder
in_channels: ${infer_in_channels:${dataset},${oc.select:transforms,null}}
out_channels: 64
proj_dropout: 0.0

backbone:
_target_: topobench.nn.backbones.GREAD
in_channels: ${model.feature_encoder.out_channels}
hidden_channels: ${model.feature_encoder.out_channels}
reaction_term: allen-cahn
time: 3.0
step_size: 1.0
beta_diag: false
add_source: false
data_norm: rw
self_loop_weight: 1.0
# Terminal ReLU pinned explicitly for the submitted benchmark runs
# (the constructor default is false, matching the reference CLI default).
xn_activation: true
input_dropout: 0.0
dropout: 0.0

backbone_wrapper:
_target_: topobench.nn.wrappers.GNNWrapper
_partial_: true
wrapper_name: GNNWrapper
out_channels: ${model.feature_encoder.out_channels}
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}}

readout:
_target_: topobench.nn.readouts.${model.readout.readout_name}
readout_name: NoReadOut # Use <NoReadOut> in case readout is not needed Options: PropagateSignalDown
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}} # The highest order of cell dimensions to consider
hidden_dim: ${model.feature_encoder.out_channels}
out_channels: ${dataset.parameters.num_classes}
task_level: ${define_task_level:${dataset.parameters.task_level},${dataset.split_params.learning_setting}} # Handles the edge case of node-inductive task
pooling_type: sum

# compile model for faster training with pytorch 2.0
compile: false
47 changes: 47 additions & 0 deletions configs/model/graph/gread_fisher.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
_target_: topobench.model.TBModel

model_name: gread_fisher
model_domain: graph

feature_encoder:
_target_: topobench.nn.encoders.${model.feature_encoder.encoder_name}
encoder_name: AllCellFeatureEncoder
in_channels: ${infer_in_channels:${dataset},${oc.select:transforms,null}}
out_channels: 64
proj_dropout: 0.0

backbone:
_target_: topobench.nn.backbones.GREAD
in_channels: ${model.feature_encoder.out_channels}
hidden_channels: ${model.feature_encoder.out_channels}
reaction_term: fisher
time: 3.0
step_size: 1.0
beta_diag: false
add_source: false
data_norm: rw
self_loop_weight: 1.0
# Terminal ReLU pinned explicitly for the submitted benchmark runs
# (the constructor default is false, matching the reference CLI default).
xn_activation: true
input_dropout: 0.0
dropout: 0.0

backbone_wrapper:
_target_: topobench.nn.wrappers.GNNWrapper
_partial_: true
wrapper_name: GNNWrapper
out_channels: ${model.feature_encoder.out_channels}
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}}

readout:
_target_: topobench.nn.readouts.${model.readout.readout_name}
readout_name: NoReadOut # Use <NoReadOut> in case readout is not needed Options: PropagateSignalDown
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}} # The highest order of cell dimensions to consider
hidden_dim: ${model.feature_encoder.out_channels}
out_channels: ${dataset.parameters.num_classes}
task_level: ${define_task_level:${dataset.parameters.task_level},${dataset.split_params.learning_setting}} # Handles the edge case of node-inductive task
pooling_type: sum

# compile model for faster training with pytorch 2.0
compile: false
47 changes: 47 additions & 0 deletions configs/model/graph/gread_source_term.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
_target_: topobench.model.TBModel

model_name: gread_source_term
model_domain: graph

feature_encoder:
_target_: topobench.nn.encoders.${model.feature_encoder.encoder_name}
encoder_name: AllCellFeatureEncoder
in_channels: ${infer_in_channels:${dataset},${oc.select:transforms,null}}
out_channels: 64
proj_dropout: 0.0

backbone:
_target_: topobench.nn.backbones.GREAD
in_channels: ${model.feature_encoder.out_channels}
hidden_channels: ${model.feature_encoder.out_channels}
reaction_term: st
time: 3.0
step_size: 1.0
beta_diag: false
add_source: false
data_norm: rw
self_loop_weight: 1.0
# Terminal ReLU pinned explicitly for the submitted benchmark runs
# (the constructor default is false, matching the reference CLI default).
xn_activation: true
input_dropout: 0.0
dropout: 0.0

backbone_wrapper:
_target_: topobench.nn.wrappers.GNNWrapper
_partial_: true
wrapper_name: GNNWrapper
out_channels: ${model.feature_encoder.out_channels}
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}}

readout:
_target_: topobench.nn.readouts.${model.readout.readout_name}
readout_name: NoReadOut # Use <NoReadOut> in case readout is not needed Options: PropagateSignalDown
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}} # The highest order of cell dimensions to consider
hidden_dim: ${model.feature_encoder.out_channels}
out_channels: ${dataset.parameters.num_classes}
task_level: ${define_task_level:${dataset.parameters.task_level},${dataset.split_params.learning_setting}} # Handles the edge case of node-inductive task
pooling_type: sum

# compile model for faster training with pytorch 2.0
compile: false
47 changes: 47 additions & 0 deletions configs/model/graph/gread_zeldovich.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
_target_: topobench.model.TBModel

model_name: gread_zeldovich
model_domain: graph

feature_encoder:
_target_: topobench.nn.encoders.${model.feature_encoder.encoder_name}
encoder_name: AllCellFeatureEncoder
in_channels: ${infer_in_channels:${dataset},${oc.select:transforms,null}}
out_channels: 64
proj_dropout: 0.0

backbone:
_target_: topobench.nn.backbones.GREAD
in_channels: ${model.feature_encoder.out_channels}
hidden_channels: ${model.feature_encoder.out_channels}
reaction_term: zeldovich
time: 3.0
step_size: 1.0
beta_diag: false
add_source: false
data_norm: rw
self_loop_weight: 1.0
# Terminal ReLU pinned explicitly for the submitted benchmark runs
# (the constructor default is false, matching the reference CLI default).
xn_activation: true
input_dropout: 0.0
dropout: 0.0

backbone_wrapper:
_target_: topobench.nn.wrappers.GNNWrapper
_partial_: true
wrapper_name: GNNWrapper
out_channels: ${model.feature_encoder.out_channels}
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}}

readout:
_target_: topobench.nn.readouts.${model.readout.readout_name}
readout_name: NoReadOut # Use <NoReadOut> in case readout is not needed Options: PropagateSignalDown
num_cell_dimensions: ${infer_num_cell_dimensions:${oc.select:model.feature_encoder.selected_dimensions,null},${model.feature_encoder.in_channels}} # The highest order of cell dimensions to consider
hidden_dim: ${model.feature_encoder.out_channels}
out_channels: ${dataset.parameters.num_classes}
task_level: ${define_task_level:${dataset.parameters.task_level},${dataset.split_params.learning_setting}} # Handles the edge case of node-inductive task
pooling_type: sum

# compile model for faster training with pytorch 2.0
compile: false
Loading
Loading