code: def _forward(
      self, x_g: t.Tensor = None, x_h: List[t.Tensor] = None
  ) -> t.Tensor:
      if x_g is None and x_h is None:
          raise ValueError(
              "guest input and host inputs cannot be both None"
          )
  
      if x_g is not None:
          x_g = x_g.to(self.device)
      if x_h is not None:
          x_h = [h.to(self.device) for h in x_h]
  
      can_cat = True
      if x_g is None:
          x_g = 0
          can_cat = False
      else:
          if self._model is not None:
              x_g = self._model(x_g)
  
      if x_h is None:
          ret = x_g
      else:
          if self._merge_type == "sum":
              for h_idx in range(len(x_h)):
                  x_g += x_h[h_idx]
              ret = x_g
          elif self._merge_type == "concat":
              # xg + x_h
              feat = [x_g] if can_cat else []
              feat.extend(x_h)
              ret = torch.cat(feat, dim=1)
          else:
              raise RuntimeError("unknown merge type")
  
      return ret
  
imports: import torch
  from typing import List, Literal
  import torch
  from fate.arch import Context
  from torch.nn.modules.module import T
label_desc: Use image node_id 3 for calling the AggLayerGuest obj's underlying member method code with example usage: obj._forward(x_g, x_h) and returns: ret