code: def forward(self, logits, labels):
      assert isinstance(
          logits, (tuple, list)
      ), "x must be either tuple or list"
      assert isinstance(
          labels, (tuple, list)
      ), "y must be either tuple or list"
      per_channel_dice = None
      if self.weight_factors is None:
          weights = [1] * len(logits)
      else:
          weights = self.weight_factors
  
      l, per_channel_dice = self.loss(logits[0], labels[0])
      l = weights[0] * l
      for i in range(1, len(logits)):
          if weights[i] != 0:
              loss, _ = self.loss(logits[i], labels[i])
              l += weights[i] * loss
      return l, per_channel_dice
  
file_path: PaddleSeg/contrib/MedicalSeg/nnunet/losses/multiple_losses.py
imports: import pickle
  import numpy
  from paddle import nn
  from medicalseg.cvlibs import manager
label_desc: Use image node_id 3 for calling the MultipleLoss obj's underlying member method code with example usage: obj.forward(logits, labels) and returns: l,  per_channel_dice