A-HK's picture
Upload folder using huggingface_hub
4f73b89 verified
Raw
History Blame Contribute Delete
1.3 kB
"""Reward and benchmark-score evaluation helpers."""
from __future__ import annotations
import json
from pathlib import Path
def summarize_runs(path: str = "artifacts/metrics.jsonl") -> dict:
file_path = Path(path)
rewards: list[float] = []
scores: list[float] = []
success_count = 0
total = 0
if not file_path.exists():
return {"mean_reward": 0.0, "mean_score": 0.0, "success_rate": 0.0, "episodes": 0}
for line in file_path.read_text(encoding="utf-8").splitlines():
item = json.loads(line)
if item.get("type") != "episode_end":
continue
total += 1
reward = float(item.get("total_reward", 0.0))
score = float(item.get("benchmark_score", 0.0))
rewards.append(reward)
scores.append(score)
if item.get("success", False):
success_count += 1
mean_reward = (sum(rewards) / len(rewards)) if rewards else 0.0
mean_score = (sum(scores) / len(scores)) if scores else 0.0
success_rate = (success_count / total) if total else 0.0
return {
"mean_reward": mean_reward,
"mean_score": mean_score,
"success_rate": success_rate,
"episodes": total,
}
if __name__ == "__main__":
print(json.dumps(summarize_runs(), indent=2))