albanpuech commited on
Commit
27519c3
·
verified ·
1 Parent(s): 98017ec

Simplify the model card around evaluation on the repro branch.

Browse files
Files changed (1) hide show
  1. README.md +30 -45
README.md CHANGED
@@ -9,62 +9,33 @@ tags:
9
  - opfdata
10
  ---
11
 
12
- # GENCO Base on OPFData (paper §5.2)
13
 
14
- Eighteen GENCO Base checkpoints used for Table 5 of [GENCO](https://arxiv.org/abs/2608.09921): six OPFData grids, three seeds (`42`, `3`, `17`).
15
 
16
- HH-MPNN numbers in the paper are taken from Arowolo et al.; they are not in this repo.
17
-
18
- ## Files
19
-
20
- ```
21
- {case14_ieee,case30_ieee,case57_ieee,case118_ieee,case500_goc,case2000_goc}/seed{42,3,17}/
22
- best_model_state_dict.pt
23
- normalizer_stats.pt
24
- metrics.csv
25
- HGNSQ_penalty_11_OPFData_<case>_<default|3|17>.yaml
26
- splits/
27
- train.pt val.pt test.pt shuffled_indices.pt
28
- mlflow/
29
- train/<grid>/seed{42,3,17}/<run_id>/
30
- eval/<run_id>/
31
- ```
32
-
33
- The training YAML sits in the same folder as the checkpoint. The same files are on GitHub: [`scripts/opfdata/configs`](https://github.com/gridfm/gridfm-graphkit/tree/genco-paper-repro/scripts/opfdata/configs). `default` is seed `42`.
34
-
35
- `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`](https://github.com/gridfm/gridfm-graphkit/tree/genco-paper-repro).
36
-
37
- The [training and eval MLflow runs](https://huggingface.co/gridfm/genco-opfdata/tree/main/mlflow) 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.
38
-
39
- ## Install
40
 
41
- The paper results were obtained with [`genco-paper-repro`](https://github.com/gridfm/gridfm-graphkit/tree/genco-paper-repro). We only guarantee the same numbers on this branch, because `main` is under active development. Clone it and install from source:
42
 
43
  ```bash
44
- git clone --branch genco-paper-repro https://github.com/gridfm/gridfm-graphkit.git
45
  cd gridfm-graphkit
46
- python -m venv venv && source venv/bin/activate
47
  pip install -e .
 
48
  TORCH_CUDA_VERSION=$(python -c "import torch; print(torch.__version__ + ('+cpu' if torch.version.cuda is None else ''))")
49
  pip install torch-scatter -f https://data.pyg.org/whl/torch-${TORCH_CUDA_VERSION}.html
50
  ```
51
 
52
- ## Data
53
 
54
- Converted OPFData parquet (already public). Graphkit loads `{data_path}/{network}/raw/*.parquet`.
55
-
56
- | Grid | Dataset |
57
- |---|---|
58
- | IEEE 14 | [gridfm/opfdata_case14_ieee](https://huggingface.co/datasets/gridfm/opfdata_case14_ieee) |
59
- | IEEE 30 | [gridfm/opfdata_case30_ieee](https://huggingface.co/datasets/gridfm/opfdata_case30_ieee) |
60
- | IEEE 57 | [gridfm/opfdata_case57_ieee](https://huggingface.co/datasets/gridfm/opfdata_case57_ieee) |
61
- | IEEE 118 | [gridfm/opfdata_case118_ieee](https://huggingface.co/datasets/gridfm/opfdata_case118_ieee) |
62
- | GOC 500 | [gridfm/opfdata_case500_goc](https://huggingface.co/datasets/gridfm/opfdata_case500_goc) |
63
- | GOC 2000 | [gridfm/opfdata_case2000_goc](https://huggingface.co/datasets/gridfm/opfdata_case2000_goc) |
64
-
65
- ## Evaluate
66
-
67
- From the graphkit repo root:
68
 
69
  ```bash
70
  mkdir -p data/case118_ieee/raw scripts/opfdata/splits
@@ -80,4 +51,18 @@ gridfm_graphkit evaluate \
80
  --batch_size 512
81
  ```
82
 
83
- Full commands: [GENCO §5.2](https://github.com/gridfm/gridfm-paper-genco/blob/main/repro_instructions/5.2_OPF_on_opfdata.md).
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9
  - opfdata
10
  ---
11
 
12
+ Reproduction guide: [GENCO §5.2](https://github.com/gridfm/gridfm-paper-genco/blob/main/repro_instructions/5.2_OPF_on_opfdata.md).
13
 
14
+ GENCO optimal-power-flow checkpoints on OPFData ([paper](https://arxiv.org/abs/2608.09921)): IEEE 14, 30, 57, and 118, and GOC 500 and 2000, seeds 42, 3, and 17.
15
 
16
+ ## Evaluate
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ Use graphkit branch [genco-paper-repro](https://github.com/gridfm/gridfm-graphkit/tree/genco-paper-repro). We do not guarantee that these checkpoints work on `main`, which is under development.
19
 
20
  ```bash
21
+ git clone -b genco-paper-repro https://github.com/gridfm/gridfm-graphkit.git
22
  cd gridfm-graphkit
 
23
  pip install -e .
24
+ pip install "huggingface_hub[cli]"
25
  TORCH_CUDA_VERSION=$(python -c "import torch; print(torch.__version__ + ('+cpu' if torch.version.cuda is None else ''))")
26
  pip install torch-scatter -f https://data.pyg.org/whl/torch-${TORCH_CUDA_VERSION}.html
27
  ```
28
 
29
+ Run the commands below from that repo root. Graphkit loads `{data_path}/{network}/raw/*.parquet`. Configs are in [`scripts/opfdata/configs`](https://github.com/gridfm/gridfm-graphkit/tree/genco-paper-repro/scripts/opfdata/configs). Copy `splits/` to `scripts/opfdata/splits/` before evaluating. Each checkpoint folder has `best_model_state_dict.pt` and `normalizer_stats.pt`.
30
 
31
+ | Grid | Dataset | `network` folder |
32
+ |---|---|---|
33
+ | IEEE 14 | [gridfm/opfdata_case14_ieee](https://huggingface.co/datasets/gridfm/opfdata_case14_ieee) | `case14_ieee` |
34
+ | IEEE 30 | [gridfm/opfdata_case30_ieee](https://huggingface.co/datasets/gridfm/opfdata_case30_ieee) | `case30_ieee` |
35
+ | IEEE 57 | [gridfm/opfdata_case57_ieee](https://huggingface.co/datasets/gridfm/opfdata_case57_ieee) | `case57_ieee` |
36
+ | IEEE 118 | [gridfm/opfdata_case118_ieee](https://huggingface.co/datasets/gridfm/opfdata_case118_ieee) | `case118_ieee` |
37
+ | GOC 500 | [gridfm/opfdata_case500_goc](https://huggingface.co/datasets/gridfm/opfdata_case500_goc) | `case500_goc` |
38
+ | GOC 2000 | [gridfm/opfdata_case2000_goc](https://huggingface.co/datasets/gridfm/opfdata_case2000_goc) | `case2000_goc` |
 
 
 
 
 
 
39
 
40
  ```bash
41
  mkdir -p data/case118_ieee/raw scripts/opfdata/splits
 
51
  --batch_size 512
52
  ```
53
 
54
+ Repeat for the other grids and seeds. Download each dataset into `data/<network>/raw`.
55
+
56
+ ## Files
57
+
58
+ ```
59
+ {case14_ieee,case30_ieee,case57_ieee,case118_ieee,case500_goc,case2000_goc}/seed{42,3,17}/
60
+ best_model_state_dict.pt
61
+ normalizer_stats.pt
62
+ metrics.csv
63
+ HGNSQ_penalty_11_OPFData_<case>_<default|3|17>.yaml
64
+ splits/
65
+ train.pt val.pt test.pt shuffled_indices.pt
66
+ mlflow/train/
67
+ mlflow/eval/
68
+ ```