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 forward(self, higher_res_feature, lower_res_feature):
      lower_res_feature = resize(
          lower_res_feature,
          size=higher_res_feature.size()[2:],
          mode="bilinear",
          align_corners=self.align_corners,
      )
      lower_res_feature = self.dwconv(lower_res_feature)
      lower_res_feature = self.conv_lower_res(lower_res_feature)
  
      higher_res_feature = self.conv_higher_res(higher_res_feature)
      out = higher_res_feature + lower_res_feature
      return self.relu(out)
  
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 2 for calling the FeatureFusionModule obj's underlying member method code with example usage: obj.forward(higher_res_feature, lower_res_feature) and returns: self