code: def inference(
      model,
      model_hard,
      im,
      ori_shape=None,
      transforms=None,
      is_slide=False,
      stride=None,
      crop_size=None,
  ):
      """
      Inference for image.
  
      Args:
          model (paddle.nn.Layer): model to get logits of image.
          im (Tensor): the input image.
          ori_shape (list): Origin shape of image.
          transforms (list): Transforms for image.
          is_slide (bool): Whether to infer by sliding window. Default: False.
          crop_size (tuple|list). The size of sliding window, (w, h). It should be probided if is_slide is True.
          stride (tuple|list). The size of stride, (w, h). It should be probided if is_slide is True.
  
      Returns:
          Tensor: If ori_shape is not None, a prediction with shape (1, 1, h, w) is returned.
              If ori_shape is None, a logit with shape (1, num_classes, h, w) is returned.
      """
      if not is_slide:
          # logits = model(im)[0]
          # logits_hard = model_hard(im)[0]
  
          logits = F.softmax(model(im)[0], axis=1)
          logits_hard = F.softmax(model_hard(im)[0], axis=1)
  
          #         logit_hard = logits.clone()
          #         for ii in range(logits.shape[0]):
          #             logit_hard[ii] = paddle.scatter(logit_hard[ii], paddle.to_tensor([3, 7, 12, 14, 15, 16, 18, 19, 20, 21]), logits_hard[ii][1:], overwrite=True, name=None)
          logit = (logits + logits_hard) / 2
          # logit = logit_hard
  
      if ori_shape is not None:
          pred = paddle.argmax(
              logit, axis=1, keepdim=True, dtype="int32"
          )
          pred = reverse_transform(pred, ori_shape, transforms)
          return pred
      else:
          return logit
  
file_path: PaddleSeg/contrib/AutoNUE/core/infer_ensemble.py
imports: import collections.abc
  from itertools import combinations
  import numpy
  import paddle
  import paddle.nn.functional
label_desc: Use image node_id 5 for calling a global function with example usage: inference(model, model_hard, im, ori_shape, transforms, is_slide, stride, crop_size) and returns: pred, logit