bdebd83c8b
CI / Lint (ruff check) (push) Successful in 27s
CI / Format (ruff format) (push) Successful in 27s
CI / Sync project version with tag (push) Has been skipped
CI / Type check (ty) (push) Successful in 24s
CI / Lint (ruff check) (pull_request) Successful in 39s
CI / Format (ruff format) (pull_request) Successful in 34s
CI / Type check (ty) (pull_request) Successful in 38s
CI / Sync project version with tag (pull_request) Has been skipped
CI / Tests (push) Failing after 5m55s
CI / Bump version, tag, and update changelog on merge to master (push) Has been skipped
CI / Tests (pull_request) Failing after 3m52s
CI / Bump version, tag, and update changelog on merge to master (pull_request) Has been skipped
MetricsCollector writes one row per epoch to <run_dir>/metrics.csv, but nothing read or plotted it. giant/training/plots.py reads the CSV header dynamically (the column set varies by run: flow/ddpm vs wgan, routed vs not) and renders loss/lr/accuracy/grad-norm/router/wgan-balance/throughput plots with the same plotstyle conventions giant/analysis/render.py uses, skipping any figure whose columns aren't present for a given run. Wired up as `giant analyze metrics <run_dir>`, writing PDFs into the same gitignored analysis_runs/ directory `analyze prep`/`submit` already use (derive_metrics_dir mirrors derive_run_dir) rather than into the training run directory itself.