class_docstr: Feature fusion module.
  
  Args:
      higher_in_channels (int): Number of input channels of the
          higher-resolution branch.
      lower_in_channels (int): Number of input channels of the
          lower-resolution branch.
      out_channels (int): Number of output channels.
      conv_cfg (dict | None): Config of conv layers. Default: None
      norm_cfg (dict | None): Config of norm layers. Default:
          dict(type='BN')
      act_cfg (dict): Config of activation layers. Default:
          dict(type='ReLU')
      align_corners (bool): align_corners argument of F.interpolate.
          Default: False
class_docstr_tok: ["Feature","fusion","module",".","Args",":","higher_in_channels","(","int",")",":","Number","of","input","channels","of","the","higher-resolution","branch",".","lower_in_channels","(","int",")",":","Number","of","input","channels","of","the","lower-resolution","branch",".","out_channels","(","int",")",":","Number","of","output","channels",".","conv_cfg","(","dict","|","None",")",":","Config","of","conv","layers",".","Default",":","None","norm_cfg","(","dict","|","None",")",":","Config","of","norm","layers",".","Default",":","dict","(","type='BN","'",")","act_cfg","(","dict",")",":","Config","of","activation","layers",".","Default",":","dict","(","type='ReLU","'",")","align_corners","(","bool",")",":","align_corners","argument","of","F.interpolate",".","Default",":","False"]
code: def __init__(
      self,
      higher_in_channels,
      lower_in_channels,
      out_channels,
      conv_cfg=None,
      norm_cfg=dict(type="BN"),
      act_cfg=dict(type="ReLU"),
      align_corners=False,
  ):
      super(FeatureFusionModule, self).__init__()
      self.conv_cfg = conv_cfg
      self.norm_cfg = norm_cfg
      self.act_cfg = act_cfg
      self.align_corners = align_corners
      self.dwconv = ConvModule(
          lower_in_channels,
          out_channels,
          1,
          conv_cfg=self.conv_cfg,
          norm_cfg=self.norm_cfg,
          act_cfg=self.act_cfg,
      )
      self.conv_lower_res = ConvModule(
          out_channels,
          out_channels,
          1,
          conv_cfg=self.conv_cfg,
          norm_cfg=self.norm_cfg,
          act_cfg=None,
      )
      self.conv_higher_res = ConvModule(
          higher_in_channels,
          out_channels,
          1,
          conv_cfg=self.conv_cfg,
          norm_cfg=self.norm_cfg,
          act_cfg=None,
      )
      self.relu = nn.ReLU(True)
  
imports: import torch
  import torch.nn
  from annotator.uniformer.mmcv.cnn import ConvModule, DepthwiseSeparableConvModule, constant_init, kaiming_init
  from torch.nn.modules.batchnorm import _BatchNorm
  from annotator.uniformer.mmseg.models.decode_heads.psp_head import PPM
  from annotator.uniformer.mmseg.ops import resize
  from ..builder import BACKBONES
  from ..utils.inverted_residual import InvertedResidual
label_desc: Use image node_id 1 to create a new FeatureFusionModule object from inherited base classes: nn with example: obj = FeatureFusionModule(higher_in_channels, lower_in_channels, out_channels, conv_cfg, norm_cfg, act_cfg, align_corners)