code: def call(self, y_true, y_pred, sample_weight=None):
      if not self.built:
          self.build(y_true, y_pred)
  
      y_true = self._flatten_y(y_true)
      y_pred = self._flatten_y(y_pred)
  
      if sample_weight is not None:
          sample_weight = self._flatten_y(sample_weight)
          # For multi-outputs, repeat sample weights for n outputs.
          if len(sample_weight) < len(y_true):
              sample_weight = [
                  sample_weight[0] for _ in range(len(y_true))
              ]
      else:
          sample_weight = [None for _ in y_true]
  
      loss_values = []
      for loss, y_t, y_p, loss_weight, sample_weight in zip(
          self.flat_losses,
          y_true,
          y_pred,
          self.flat_loss_weights,
          sample_weight,
      ):
          if loss:
              value = loss_weight * ops.cast(
                  loss(y_t, y_p, sample_weight), dtype=backend.floatx()
              )
              loss_values.append(value)
      if loss_values:
          total_loss = sum(loss_values)
          return total_loss
      return None
  
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 5 for calling the CompileLoss obj's underlying member method code with example usage: obj.call(y_true, y_pred, sample_weight) and returns: None, total_loss