code: def build(self, y_true, y_pred):
      if self.output_names:
          output_names = self.output_names
      elif isinstance(y_pred, dict):
          output_names = sorted(list(y_pred.keys()))
      elif isinstance(y_pred, (list, tuple)):
          num_outputs = len(y_pred)
          if all(hasattr(x, "_keras_history") for x in y_pred):
              output_names = [
                  x._keras_history.operation.name for x in y_pred
              ]
          else:
              output_names = None
      else:
          output_names = None
          num_outputs = 1
      if output_names:
          num_outputs = len(output_names)
  
      y_pred = self._flatten_y(y_pred)
      y_true = self._flatten_y(y_true)
  
      metrics = self._user_metrics
      weighted_metrics = self._user_weighted_metrics
      self._flat_metrics = self._build_metrics_set(
          metrics,
          num_outputs,
          output_names,
          y_true,
          y_pred,
          argument_name="metrics",
      )
      self._flat_weighted_metrics = self._build_metrics_set(
          weighted_metrics,
          num_outputs,
          output_names,
          y_true,
          y_pred,
          argument_name="weighted_metrics",
      )
      self.built = True
  
imports: import tree
  from keras import backend
  from keras import losses
  from keras import metrics
  from keras import ops
  from keras.utils.naming import get_object_name
label_desc: Use image node_id 4 for calling the CompileMetrics obj's underlying member method code with example usage: obj.build(y_true, y_pred) without return types