From e6b7a41dc00572b00b30c3037f67a2931563d4d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=8B=9C=EC=9B=90?= Date: Thu, 7 May 2026 17:12:27 +0900 Subject: [PATCH] Show iters_per_hour estimate in iteration summary Append a rough iters_per_hour estimate (3600/iteration_seconds) to the console summary so users running long jobs can eyeball ETA without doing the math. Co-Authored-By: Claude Opus 4.7 (1M context) --- src/coolrl_lost_cities/games/classic/deep_cfr/trainer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/coolrl_lost_cities/games/classic/deep_cfr/trainer.py b/src/coolrl_lost_cities/games/classic/deep_cfr/trainer.py index 894ee53..f4dbbe1 100644 --- a/src/coolrl_lost_cities/games/classic/deep_cfr/trainer.py +++ b/src/coolrl_lost_cities/games/classic/deep_cfr/trainer.py @@ -137,6 +137,9 @@ def _format_iteration_summary(metrics: IterationMetrics, data: dict[str, float | f"advantage_loss={_format_summary_value(metrics.advantage_loss)}", f"strategy_loss={_format_summary_value(metrics.strategy_loss)}", f"iteration_seconds={_format_summary_value(data['iteration_seconds'])}", + f"iters_per_hour={3600.0 / data['iteration_seconds']:.1f}" + if data.get("iteration_seconds", 0.0) + else "iters_per_hour=n/a", ] if metrics.eval_metrics: eval_seconds = float(data.get("evaluation_seconds", 0.0) or 0.0)