code: def __call__(
      self, input_batch, output_batch, target_batch, is_val=False
  ):
      logs = {}
      for metric in self.metrics:
          # logs[self.prefix+metric._name] = self.helper.calculate_loss(output_batch, target_batch, metric)
          metric_out = metric(
              input_batch, output_batch, target_batch, is_val
          )
          if metric_out is not None:
              logs[self.prefix + metric._name] = metric_out
      return logs
  
imports: import torch
  from .utils import th_matrixcorr
  from .meters.averagemeter import AverageMeter
  from .callbacks import Callback
  from .losses import lovaszloss, hingeloss, dice_coeff
label_desc: Use image node_id 4 for calling the MetricContainer obj's underlying member method code with example usage: obj.__call__(input_batch, output_batch, target_batch, is_val) and returns: logs