def METHOD_NAME(self, loader):
    self.model.eval()
    total_si_snri = torch.zeros(1, dtype=torch.float32, device=self.device)
    total_sdri = torch.zeros(1, dtype=torch.float32, device=self.device)
    for batch in loader:
        mix = batch.mix.to(self.device)
        src = batch.src.to(self.device)
        mask = batch.mask.to(self.device)
        estimate = self.model(mix)
        si_snri, sdri = si_sdr_improvement(estimate, src, mix, mask)
        total_si_snri += si_snri.sum()
        total_sdri += sdri.sum()
        if self.debug:
            break
    dist.all_reduce(total_si_snri, dist.ReduceOp.SUM)
    dist.all_reduce(total_sdri, dist.ReduceOp.SUM)
    num_samples = len(loader.dataset)
    metric = Metric(total_si_snri.item() / num_samples, total_sdri.item() / num_samples)
    return metric