autoscale metrics table

This commit is contained in:
hjc-puro 2025-07-12 22:41:14 +00:00
parent 107809260d
commit a94e4c9bf0

View file

@ -17,34 +17,38 @@ def display_metrics_table(
"""
print(f"\nEvaluation Results: {task_name}")
# Column widths
col_groups = 20
col_version = 7
col_filter = 6
col_nshot = 6
col_metric = 20
col_dir = 3
col_value = 10
col_pm = 3
col_stderr = 8
# Prepare data for column width calculation
clean_metric_names = [metric_name.replace("eval/", "").replace("_", " ") for metric_name in metrics.keys()]
formatted_values = [f"{value:.4f}" for value in metrics.values()]
# Calculate dynamic column widths
col_groups = max(len(task_name), len("Groups"))
col_version = max(len("1"), len("Version"))
col_filter = max(len("none"), len("Filter"))
col_nshot = max(len(""), len("n-shot"))
col_metric = max(max(len(name) for name in clean_metric_names), len("Metric"))
col_dir = 3 # Fixed for directional indicators
col_value = max(max(len(val) for val in formatted_values), len("Value"))
col_pm = 3 # Fixed for "±" symbol
col_stderr = max(len("0.0000"), len("Stderr"))
# Header
print(
f"|{'Groups':<{col_groups}}|{'Version':<{col_version}}|{'Filter':<{col_filter}}|{'n-shot':<{col_nshot}}|{'Metric':<{col_metric}}|{' ':<{col_dir}}|{'Value':>{col_value}}|{' ':<{col_pm}}|{'Stderr':>{col_stderr}}|" # noqa: E501
f"|{'Groups':<{col_groups}}|{'Version':<{col_version}}|{'Filter':<{col_filter}}|{'n-shot':<{col_nshot}}|{'Metric':<{col_metric}}|{'':^{col_dir}}|{'Value':>{col_value}}|{'':^{col_pm}}|{'Stderr':>{col_stderr}}|"
)
# Separator
print(
f"|{'-' * col_groups}|{'-' * col_version}|{'-' * col_filter}|{'-' * col_nshot}|{'-' * col_metric}|{'-' * col_dir}|{'-' * (col_value-1)}:|{'-' * col_pm}|{'-' * (col_stderr-1)}:|" # noqa: E501
f"|{'-' * col_groups}|{'-' * col_version}|{'-' * col_filter}|{'-' * col_nshot}|{'-' * col_metric}|{'-' * col_dir}|{'-' * (col_value-1)}:|{'-' * col_pm}|{'-' * (col_stderr-1)}:|"
)
# Data rows
for metric_name, metric_value in metrics.items():
clean_metric_name = metric_name.replace("eval/", "").replace("_", " ")
direction = "" if "correct" in metric_name or "acc" in metric_name else " "
direction = "" if "correct" in metric_name or "acc" in metric_name else ""
print(
f"|{task_name:<{col_groups}}|{1:<{col_version}}|{'none':<{col_filter}}|{'':<{col_nshot}}|{clean_metric_name:<{col_metric}}|{direction:<{col_dir}}|{metric_value:>{col_value}.4f}|{'±':<{col_pm}}|{'0.0000':>{col_stderr}}|" # noqa: E501
f"|{task_name:<{col_groups}}|{1:<{col_version}}|{'none':<{col_filter}}|{'':<{col_nshot}}|{clean_metric_name:<{col_metric}}|{direction:^{col_dir}}|{metric_value:>{col_value}.4f}|{'±':^{col_pm}}|{'0.0000':>{col_stderr}}|"
)
print(f"Evaluation completed in {end_time - start_time:.2f} seconds\n")
print(f"Evaluation completed in {end_time - start_time:.2f} seconds")