FAQ¶
Why do I need a GPU?¶
The benchmark's PyTorch + PyTorch-Geometric stack is built around CUDA
tensors. There is no CPU fallback path — both the Transformer and the
ST-GNN implementations call .cuda() directly. If you only want to
explore the pre-computed figures, use the desktop installer or the
Hugging Face Space; neither requires a GPU.
Why uv and not pip / conda?¶
The lockfile (uv.lock) is the source of truth and guarantees
reproducible installs across contributors and CI. uv is the only
tool that reads and writes that lockfile without drift. We still
support pip as an install path (see README section B) but it is not
used for CI or for reproducing paper numbers.
My sweep rows at W > 90 look wrong — why?¶
You are probably on a pre-4daeff3 binary. Upgrade to main and re-run
the graphlet methods at W ≠ 90. Details:
eval-window leakage and
graphlet NaN fix.
Can I redistribute the raw station data?¶
No. Raw station measurements belong to FOEN and AWEL. This repository ships only the code, the derived aggregated CSVs used by the paper figures, and placeholder visual assets. The desktop installer likewise ships no raw station data. Obtain the measurements directly from the sources.
How do I add a new method?¶
- Create a new file under
swissrivernetwork/benchmark/(don't edit the existing drivers in place). - Add a factory / training function modelled on
train_transformerintrain_isolated_station.py. - Register it with the
methoddispatch in the CLI / drivers. - Add its hyperparameter search space to
ray_tune.py. - PR — see CONTRIBUTING.md.