code: def calculate_metrics(self, model, train_loader, valid_loader, metrics_dict):
          
          # Check whether or not it's time for validation as well
          self.log_count += 1
          log_valid = (
              valid_loader is not None
              and self.valid_every_X
              and not (self.log_count % self.valid_every_X)
          )
  
          metrics_dict = {}
  
          # Calculate custom metrics
          if self.config["log_train_metrics_func"] is not None:
              func = self.config["log_train_metrics_func"]
              func_list = func if isinstance(func, list) else [func]
              for func in func_list:
                  metrics_dict = self._calculate_custom_metrics(
                      model, train_loader, func, metrics_dict, split="train"
                  )
          if self.config["log_valid_metrics_func"] is not None and log_valid:
              func = self.config["log_valid_metrics_func"]
              func_list = func if isinstance(func, list) else [func]
              for func in func_list:
                  metrics_dict = self._calculate_custom_metrics(
                      model, valid_loader, func, metrics_dict, split="valid"
                  )
  
          # Calculate standard metrics
          metrics_dict = self._calculate_standard_metrics(
              model, train_loader, self.log_train_metrics, metrics_dict, "train"
          )
  
          if log_valid:
              metrics_dict = self._calculate_standard_metrics(
                  model, valid_loader, self.log_valid_metrics, metrics_dict, "valid"
              )
  
          return metrics_dict
docs: Add standard and custom metrics to metrics_dict