class_docstr: The EMANet head.
  
  Args:
      num_classes (int): The unique number of target classes.
      in_channels (tuple): The number of input channels.
      ema_channels (int): EMA module channels.
      gc_channels (int): The input channels to Global Context Block.
      num_bases (int): Number of bases.
      stage_num (int): The iteration number for EM.
      momentum (float): The parameter for updating bases.
      concat_input (bool): Whether concat the input and output of convs before classification layer. Default: True
      enable_auxiliary_loss (bool, optional): A bool value indicates whether adding auxiliary loss. Default: True.
class_docstr_tok: ["The","EMANet","head",".","Args",":","num_classes","(","int",")",":","The","unique","number","of","target","classes",".","in_channels","(","tuple",")",":","The","number","of","input","channels",".","ema_channels","(","int",")",":","EMA","module","channels",".","gc_channels","(","int",")",":","The","input","channels","to","Global","Context","Block",".","num_bases","(","int",")",":","Number","of","bases",".","stage_num","(","int",")",":","The","iteration","number","for","EM",".","momentum","(","float",")",":","The","parameter","for","updating","bases",".","concat_input","(","bool",")",":","Whether","concat","the","input","and","output","of","convs","before","classification","layer",".","Default",":","True","enable_auxiliary_loss","(","bool",",","optional",")",":","A","bool","value","indicates","whether","adding","auxiliary","loss",".","Default",":","True","."]
code: def forward(self, feat_list):
      C3, C4 = feat_list
      feats = self.ema_in_conv(C4)
      identity = feats
      feats = self.ema_mid_conv(feats)
      recon = self.emau(feats)
      recon = F.relu(recon)
      recon = self.ema_out_conv(recon)
      output = F.relu(identity + recon)
      output = self.bottleneck(output)
      if self.concat_input:
          output = self.conv_cat(paddle.concat([C4, output], axis=1))
      output = self.cls(output)
      if self.enable_auxiliary_loss:
          auxout = self.aux(C3)
          return [output, auxout]
      else:
          return [output]
  
file_path: PaddleSeg/paddleseg/models/emanet.py
imports: import paddle
  import paddle.nn
  import paddle.nn.functional
  from paddleseg.models import layers
  from paddleseg.cvlibs import manager
  from paddleseg.utils import utils
label_desc: Use image node_id 2 for calling the EMAHead obj's underlying member method code with example usage: obj.forward(feat_list) and returns: list, list