Skip to content
7 changes: 7 additions & 0 deletions armory/instrument/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,8 @@ def _write(self, name, batch, result):
elif any(m in name for m in QUANTITY_METRICS):
# Don't include % symbol
f_result = f"{np.mean(result):.2}"
elif isinstance(result, dict):
f_result = f"{result}"
else:
f_result = f"{np.mean(result):.2%}"
log.success(
Expand Down Expand Up @@ -253,6 +255,11 @@ def _task_metric(
elif name == "word_error_rate":
final = metrics.get("total_wer")
final_suffix = "total_word_error_rate"
elif name == "per_class_mean_accuracy":
metric = metrics.get("identity_unzip")
func = metrics.get("per_class_mean_accuracy")
final = lambda x: func(*metrics.task.identity_zip(x))
final_suffix = name
elif use_mean:
final = np.mean
final_suffix = f"mean_{name}"
Expand Down
3 changes: 2 additions & 1 deletion armory/utils/config_schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,8 @@
"carla_od_disappearance_rate",
"carla_od_hallucinations_per_image",
"carla_od_misclassification_rate",
"carla_od_true_positive_rate"
"carla_od_true_positive_rate",
"per_class_mean_accuracy"
]
},
"sysconfig": {
Expand Down