ac01966a1f
CI / Sync project version with tag (hand-pushed tags only) (pull_request) Has been skipped
CI / Publish package to Gitea package registry (pull_request) Has been skipped
CI / Lint (ruff check) (pull_request) Successful in 29s
CI / Format (ruff format) (pull_request) Successful in 48s
CI / Type check (ty) (pull_request) Successful in 49s
CI / Tests (pull_request) Failing after 3m5s
CI / Release (bump, changelog, badges, tag) on merge to master (pull_request) Has been skipped
Adds a `prediction` plot family to `giant analyze`, alongside the existing rollout-vs-reference comparison, and extends `giant predict` to make it possible: - `giant predict --coord global` gains schema v3 (`--truth/--no-truth`, default on): writes true_* physical columns and true secondary lists alongside the predictions, so the output is fully paired. - New `giant/analysis/prediction.py` builds one canonical true/pred frame (`paired_frame`) from either predict coord mode. - `catalog.py` gains 35 `pred_*` specs: marginals, 2D truth-vs-pred scatter (new `heatmap2d` kind), residuals/relative-residuals/calibration profiles, KS/bias/RMSE scorecards, n_sec + secondary-species confusion matrices, direction-alignment and constraint-violation checks, and a correlation delta. Two new Reduced kinds (`paired_hist`, `heatmap2d`) get renderers. Every spec degrades to kind="unavailable" with no --prediction given. - `condor.py`/`cli.py`: `--prediction`/`--prediction-label` on `analyze prep`/`submit`, threaded through RunMeta and every compute job. Full test suite (1162 tests), ruff, and ty all pass. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PpxE9nij3ujg9XcuzvQ26q
67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
"""Rollout-vs-reference analysis: streaming compute + plotstyle rendering.
|
|
|
|
Compares one or more autoregressive ``giant rollout`` runs against a single
|
|
held-out miniCaloSim reference file shared by all of them, producing
|
|
publication-styled comparison plots (one colored series per rollout, one
|
|
reference line) generated in parallel on HTCondor (one job per plot x data
|
|
chunk, compute/merge/render split).
|
|
|
|
Only ``render`` (and the ``render`` CLI path) imports plotstyle/LaTeX; everything
|
|
re-exported here is plotstyle-free so it runs on a compute worker. Import
|
|
``giant.analysis.render`` explicitly for the local render step.
|
|
"""
|
|
|
|
from giant.analysis.catalog import build_catalog, catalog_ids, get_spec
|
|
from giant.analysis.condor import (
|
|
LoadedPrediction,
|
|
LoadedRollout,
|
|
RunMeta,
|
|
SubmitConfig,
|
|
compute_one,
|
|
compute_reduced,
|
|
derive_run_dir,
|
|
load_prediction_yaml,
|
|
load_prediction_yamls,
|
|
load_rollout_yaml,
|
|
load_rollout_yamls,
|
|
merge_all,
|
|
merge_one,
|
|
prep,
|
|
write_submit,
|
|
)
|
|
from giant.analysis.context import Context, build_context
|
|
from giant.analysis.prediction import PredictionSpec
|
|
from giant.analysis.reduced import Partial, Reduced
|
|
from giant.analysis.runtime_estimate import RUNTIME_SAFETY_MARGIN, estimate_runtime_s
|
|
from giant.analysis.sources import RolloutSpec, Side
|
|
|
|
__all__ = [
|
|
"RUNTIME_SAFETY_MARGIN",
|
|
"Context",
|
|
"LoadedPrediction",
|
|
"LoadedRollout",
|
|
"Partial",
|
|
"PredictionSpec",
|
|
"Reduced",
|
|
"RolloutSpec",
|
|
"RunMeta",
|
|
"Side",
|
|
"SubmitConfig",
|
|
"build_catalog",
|
|
"build_context",
|
|
"catalog_ids",
|
|
"compute_one",
|
|
"compute_reduced",
|
|
"derive_run_dir",
|
|
"estimate_runtime_s",
|
|
"get_spec",
|
|
"load_prediction_yaml",
|
|
"load_prediction_yamls",
|
|
"load_rollout_yaml",
|
|
"load_rollout_yamls",
|
|
"merge_all",
|
|
"merge_one",
|
|
"prep",
|
|
"write_submit",
|
|
]
|