in training/trainer.py [0:0]
def _check_val_key_match(self, val_keys, phase):
if val_keys is not None:
# Check if there are any duplicates
assert len(val_keys) == len(
set(val_keys)
), f"Duplicate keys in val datasets, keys: {val_keys}"
# Check that the keys match the meter keys
if self.meters_conf is not None and phase in self.meters_conf:
assert set(val_keys) == set(self.meters_conf[phase].keys()), (
f"Keys in val datasets do not match the keys in meters."
f"\nMissing in meters: {set(val_keys) - set(self.meters_conf[phase].keys())}"
f"\nMissing in val datasets: {set(self.meters_conf[phase].keys()) - set(val_keys)}"
)
if self.loss_conf is not None:
loss_keys = set(self.loss_conf.keys()) - set(["all"])
assert all([k in loss_keys for k in val_keys]), (
f"Keys in val datasets do not match the keys in losses."
f"\nMissing in losses: {set(val_keys) - loss_keys}"
f"\nMissing in val datasets: {loss_keys - set(val_keys)}"
)