Skip to content
This repository was archived by the owner on Dec 16, 2022. It is now read-only.

Commit 01ddd12

Browse files
authored
make tables nice in validation summary (#1490)
1 parent ba6f345 commit 01ddd12

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

allennlp/training/trainer.py

+10-5
Original file line numberDiff line numberDiff line change
@@ -624,23 +624,28 @@ def _metrics_to_console(self, # pylint: disable=no-self-use
624624
Logs all of the train metrics (and validation metrics, if provided) to the console.
625625
"""
626626
val_metrics = val_metrics or {}
627-
dual_message_template = "Training %s : %3f Validation %s : %3f "
628-
message_template = "%s %s : %3f "
627+
dual_message_template = "%s | %8.3f | %8.3f"
628+
no_val_message_template = "%s | %8.3f | %8s"
629+
no_train_message_template = "%s | %8s | %8.3f"
630+
header_template = "%s | %-10s"
629631

630632
metric_names = set(train_metrics.keys())
631633
if val_metrics:
632634
metric_names.update(val_metrics.keys())
633635

636+
name_length = max([len(x) for x in metric_names])
637+
638+
logger.info(header_template, "Training".rjust(name_length + 13), "Validation")
634639
for name in metric_names:
635640
train_metric = train_metrics.get(name)
636641
val_metric = val_metrics.get(name)
637642

638643
if val_metric is not None and train_metric is not None:
639-
logger.info(dual_message_template, name, train_metric, name, val_metric)
644+
logger.info(dual_message_template, name.ljust(name_length), train_metric, val_metric)
640645
elif val_metric is not None:
641-
logger.info(message_template, "Validation", name, val_metric)
646+
logger.info(no_train_message_template, name.ljust(name_length), "N/A", val_metric)
642647
elif train_metric is not None:
643-
logger.info(message_template, "Training", name, train_metric)
648+
logger.info(no_val_message_template, name.ljust(name_length), train_metric, "N/A")
644649

645650
def _validation_loss(self) -> Tuple[float, int]:
646651
"""

0 commit comments

Comments
 (0)