GENCO on datakit PF (paper §5.4.2)

GENCO checkpoints used for the residual-vs-grid-size figure of GENCO (fig:gridsize_vs_residuals_pf).

Base, Small, and Tiny (hidden size 48 / 24 / 12) through GOC 500, three seeds (0, 1, 42). GOC 2000 and GOC 10000 are Small and Tiny only: seeds 0 and 42 on GOC 2000, seeds 0 and 1 on GOC 10000.

Files

{case14,case30,case57,case118}_ieee/{base,small,tiny}/seed{0,1,42}/
  best_model_state_dict.pt
  normalizer_stats.pt
  metrics.csv
  <network>_<size>_seed<seed>.yaml
case500_goc/{base,small,tiny}/seed{0,1,42}/
  best_model_state_dict.pt
  normalizer_stats.pt
  metrics.csv
  <network>_<size>_seed<seed>.yaml
case2000_goc/{small,tiny}/seed{0,42}/
  best_model_state_dict.pt
  normalizer_stats.pt
  metrics.csv
  <network>_<size>_seed<seed>.yaml
case10000_goc/{small,tiny}/seed{0,1}/
  best_model_state_dict.pt
  last.pt
  normalizer_stats.pt
  metrics.csv
  <network>_<size>_seed<seed>.yaml
mlflow/eval/    # grids through GOC 500
mlflow/train/   # GOC 2000 and GOC 10000

best_model_state_dict.pt is the best-validation state dict. Grids through GOC 500 and GOC 2000 were scored on that file. GOC 10000 was scored on last.pt, the last-epoch weights. normalizer_stats.pt is required by evaluate. The training YAML is in the same folder. The same files are on GitHub: scripts/datakit_pf/configs.

For grids through GOC 500, the figure uses the eval-run test metrics under mlflow/eval/. For GOC 2000 and GOC 10000 it uses the training-run test metrics under mlflow/train/: those runs restored the best checkpoint before test(). Weights stay next to normalizer_stats.pt, not inside mlflow/.

In scripts/datakit_pf/results/pf_eval_combined_eval_metrics.csv, seed1 / seed2 / seed3 for grids through GOC 500 are these folders' seeds 0 / 1 / 42.

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 datakit PF parquet (already public). Graphkit loads {data_path}/{network}/raw/*.parquet.

Grid Dataset network folder
IEEE 14 gridfm/pf_small_case14_ieee case14_ieee
IEEE 30 gridfm/pf_small_case30_ieee case30_ieee
IEEE 57 gridfm/pf_small_case57_ieee case57_ieee
IEEE 118 gridfm/pf_small_case118_ieee case118_ieee
GOC 500 gridfm/pf_small_case500_goc case500_goc
GOC 2000 gridfm/pf_small_case2000_goc case2000_goc
GOC 10000 gridfm/pf_small_case10000_goc case10000_goc
mkdir -p data/case118_ieee/raw
hf download gridfm/pf_small_case118_ieee --repo-type dataset --local-dir data/case118_ieee/raw

Evaluate

From the graphkit repo root. Same command for every grid; only the config and the checkpoint folder change.

hf download gridfm/genco-pf-datakit --include "case118_ieee/base/seed0/**" --local-dir genco-pf-datakit

gridfm_graphkit evaluate \
  --config scripts/datakit_pf/configs/case118_ieee_base_seed0.yaml \
  --data_path data \
  --model_path genco-pf-datakit/case118_ieee/base/seed0/best_model_state_dict.pt \
  --normalizer_stats genco-pf-datakit/case118_ieee/base/seed0/normalizer_stats.pt

For GOC 10000, pass last.pt instead of best_model_state_dict.pt.

Full commands: GENCO §5.4.2.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including gridfm/genco-pf-datakit

Paper for gridfm/genco-pf-datakit