DarshanScripts commited on
Commit
dba981b
·
verified ·
1 Parent(s): 1d1bddb

Upload stratego\benchmarking\csv_logger.py with huggingface_hub

Browse files
stratego//benchmarking//csv_logger.py ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # stratego/benchmarking/csv_logger.py
2
+
3
+ import csv
4
+ import os
5
+ from datetime import datetime
6
+
7
+ BENCHMARK_DIR = "stratego/benchmarking/output/benchmarks"
8
+ SUMMARY_DIR = "stratego/benchmarking/output/summaries"
9
+
10
+
11
+ def create_benchmark_csv(batch_size: int):
12
+ """
13
+ Creates ONE CSV file for ONE benchmark run (multiple games).
14
+ """
15
+ os.makedirs(BENCHMARK_DIR, exist_ok=True)
16
+
17
+ timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
18
+ filename = f"benchmark_{timestamp}_games{batch_size}.csv"
19
+ path = os.path.join(BENCHMARK_DIR, filename)
20
+
21
+ f = open(path, "w", newline="", encoding="utf-8")
22
+ writer = csv.writer(f)
23
+
24
+ writer.writerow([
25
+ "game_id",
26
+ "model_p0",
27
+ "model_p1",
28
+ "board_size",
29
+ "winner",
30
+ "turns",
31
+ "invalid_moves_p0",
32
+ "invalid_moves_p1",
33
+ "repetitions",
34
+ "flag_captured",
35
+ "game_end_reason"
36
+ ])
37
+
38
+ return f, writer, path
39
+
40
+
41
+ def write_summary_csv(summary: dict, source_csv: str):
42
+ """
43
+ Writes ONE summary CSV corresponding to ONE benchmark CSV.
44
+ """
45
+ os.makedirs(SUMMARY_DIR, exist_ok=True)
46
+
47
+ base = os.path.basename(source_csv).replace(".csv", "")
48
+ path = os.path.join(SUMMARY_DIR, f"{base}_SUMMARY.csv")
49
+
50
+ with open(path, "w", newline="", encoding="utf-8") as f:
51
+ writer = csv.writer(f)
52
+
53
+ writer.writerow(["metric", "value"])
54
+ writer.writerow(["source_benchmark_csv", source_csv])
55
+
56
+ for k, v in summary.items():
57
+ writer.writerow([k, v])