code: def forward(
      self, x: torch.Tensor, c: Optional[torch.Tensor] = None
  ) -> torch.Tensor:
      if self.add_skip:
          skip = self.skip_proj(x)
      else:
          skip = x
  
      if c is not None:
          x = torch.cat((x, c), dim=-1)
      x = self.mlp(x)
      x = self.lnorm(x + skip)
      return x
  
imports: from typing import List, Optional, Tuple
  import numpy
  import torch
  import torch.nn
  from pts.modules import FeatureEmbedder
label_desc: Use image node_id 2 for calling the GatedResidualNetwork obj's underlying member method code with example usage: obj.forward(x, c) and returns: x