File size: 1,300 Bytes
75ec748 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import json
from pathlib import Path
from tabulate import tabulate
RESULTS_DIRECTORY = "../results"
def results_data(results_dir=RESULTS_DIRECTORY):
datas = []
directory = Path(results_dir)
file_path_list = [f for f in directory.rglob("*metrics.json") if f.is_file()]
for file_path in file_path_list:
with open(file_path, "r", encoding="utf-8") as file:
datas.append(json.load(file))
return datas
def format_as_small_rows():
headers = ["Model", "Task", "Metric", "Results"]
rows = []
for data in results_data():
model_name = data["model_name"]
for task in data["tasks"]:
for task_name, metrics_values in task.items():
for metric_name, metric_values in metrics_values.items():
formatted_metrics = "||".join(
[
f"{key}:{value:.4f}"
for key, value in metric_values.items()
if isinstance(value, (int, float))
]
)
rows.append([model_name, task_name, metric_name, formatted_metrics])
markdown_tb = tabulate(rows, headers=headers, tablefmt="github")
return markdown_tb
|