GENCO Base on OPFData (paper §5.2)
Eighteen GENCO Base checkpoints used for Table 5 of GENCO: six OPFData grids, three seeds (42, 3, 17).
HH-MPNN numbers in the paper are taken from Arowolo et al.; they are not in this repo.
Files
{case14_ieee,case30_ieee,case57_ieee,case118_ieee,case500_goc,case2000_goc}/seed{42,3,17}/
best_model_state_dict.pt
normalizer_stats.pt
metrics.csv
HGNSQ_penalty_11_OPFData_<case>_<default|3|17>.yaml
splits/
train.pt val.pt test.pt shuffled_indices.pt
mlflow/
train/<grid>/seed{42,3,17}/<run_id>/
eval/<run_id>/
The training YAML sits in the same folder as the checkpoint. The same files are on GitHub: scripts/opfdata/configs. default is seed 42.
metrics.csv is the eval test-set scalar dump for that checkpoint (gridfm_graphkit evaluate --batch_size 512). splits/ are the HH-MPNN 90/5/5 index files (270k / 15k / 15k). Put them at scripts/opfdata/splits/ when training or evaluating from gridfm-graphkit genco-paper-repro.
The training and eval MLflow runs are under mlflow/ (params, tags, metrics, test CSVs and plots). Weights stay in <grid>/seed*/, not inside the run dirs. Table 5 uses the eval runs.
Install
The paper results were obtained with genco-paper-repro. We only guarantee the same numbers on this branch, because main is under active development. Clone it and install from source:
git clone --branch genco-paper-repro https://github.com/gridfm/gridfm-graphkit.git
cd gridfm-graphkit
python -m venv venv && source venv/bin/activate
pip install -e .
TORCH_CUDA_VERSION=$(python -c "import torch; print(torch.__version__ + ('+cpu' if torch.version.cuda is None else ''))")
pip install torch-scatter -f https://data.pyg.org/whl/torch-${TORCH_CUDA_VERSION}.html
Data
Converted OPFData parquet (already public). Graphkit loads {data_path}/{network}/raw/*.parquet.
| Grid | Dataset |
|---|---|
| IEEE 14 | gridfm/opfdata_case14_ieee |
| IEEE 30 | gridfm/opfdata_case30_ieee |
| IEEE 57 | gridfm/opfdata_case57_ieee |
| IEEE 118 | gridfm/opfdata_case118_ieee |
| GOC 500 | gridfm/opfdata_case500_goc |
| GOC 2000 | gridfm/opfdata_case2000_goc |
Evaluate
From the graphkit repo root:
mkdir -p data/case118_ieee/raw scripts/opfdata/splits
hf download gridfm/opfdata_case118_ieee --repo-type dataset --local-dir data/case118_ieee/raw
hf download gridfm/genco-opfdata --include "case118_ieee/seed42/**" --include "splits/**" --local-dir genco-opfdata
cp genco-opfdata/splits/*.pt scripts/opfdata/splits/
gridfm_graphkit evaluate \
--config scripts/opfdata/configs/HGNSQ_penalty_11_OPFData_case118_default.yaml \
--data_path data \
--model_path genco-opfdata/case118_ieee/seed42/best_model_state_dict.pt \
--normalizer_stats genco-opfdata/case118_ieee/seed42/normalizer_stats.pt \
--batch_size 512
Full commands: GENCO §5.2.