in sing/fondation/trainer.py [0:0]
def _eval_dataset(self, dataset_name, dataset, epoch):
"""
Evaluate all the losses `eval_lossers` on the given dataset
and reports the metrics averaged over the entire dataset.
"""
loader = DataLoader(
dataset, batch_size=self.batch_size, collate_fn=collate)
total_losses = {loss_name: 0 for loss_name in self.eval_losses}
with tqdm.tqdm(total=len(dataset), unit="ex") as bar:
for batch in loader:
if self.cuda:
batch.cuda_()
rebuilt, target = self._get_rebuilt_target(batch)
for name, loss in self.eval_losses.items():
total_losses[name] += loss(rebuilt,
target).item() * len(batch)
bar.update(len(batch))
print("[{}{}][{:03d}] Evaluation: \n{}\n".format(
dataset_name, self.suffix, epoch, "\n".join(
"\t{}={:.6f}".format(name, loss / len(dataset))
for name, loss in total_losses.items())))
return total_losses