def METHOD_NAME(
    self, valid_data_loader: DataLoader, epoch: int
) -> float:
    self.model.eval()
    valid_loss = 0
    with torch.no_grad():
        for batch in valid_data_loader:
            model_result = self._batch_pass(batch, self.model)
            valid_loss += self._loss(**model_result)
        valid_loss /= len(valid_data_loader)
        valid_debug_message = f"""Epoch[{epoch}] validation
                                average loss: {valid_loss:.5f}"""
        self.logger.debug(valid_debug_message)
    return valid_loss.item()