class_docstr: HRFPN (High Resolution Feature Pyrmamids)
  
  paper: `High-Resolution Representations for Labeling Pixels and Regions
  <https://arxiv.org/abs/1904.04514>`_.
  
  Args:
      in_channels (list): number of channels for each branch.
      out_channels (int): output channels of feature pyramids.
      num_outs (int): number of output stages.
      pooling_type (str): pooling for generating feature pyramids
          from {MAX, AVG}.
      conv_cfg (dict): dictionary to construct and config conv layer.
      norm_cfg (dict): dictionary to construct and config norm layer.
      with_cp  (bool): Use checkpoint or not. Using checkpoint will save some
          memory while slowing down the training speed.
      stride (int): stride of 3x3 convolutional layers
code: def __init__(
      self,
      in_channels,
      out_channels,
      num_outs=5,
      pooling_type="AVG",
      conv_cfg=None,
      norm_cfg=None,
      with_cp=False,
      stride=1,
  ):
      super(HRFPN, self).__init__()
      assert isinstance(in_channels, list)
      self.in_channels = in_channels
      self.out_channels = out_channels
      self.num_ins = len(in_channels)
      self.num_outs = num_outs
      self.with_cp = with_cp
      self.conv_cfg = conv_cfg
      self.norm_cfg = norm_cfg
  
      self.reduction_conv = ConvModule(
          sum(in_channels),
          out_channels,
          kernel_size=1,
          conv_cfg=self.conv_cfg,
          act_cfg=None,
      )
  
      self.fpn_convs = nn.ModuleList()
      for i in range(self.num_outs):
          self.fpn_convs.append(
              ConvModule(
                  out_channels,
                  out_channels,
                  kernel_size=3,
                  padding=1,
                  stride=stride,
                  conv_cfg=self.conv_cfg,
                  act_cfg=None,
              )
          )
  
      if pooling_type == "MAX":
          self.pooling = F.max_pool2d
      else:
          self.pooling = F.avg_pool2d
  
file_path: insightface/detection/scrfd/mmdet/models/necks/hrfpn.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from mmcv.cnn import ConvModule, caffe2_xavier_init
  from torch.utils.checkpoint import checkpoint
  from ..builder import NECKS
label_desc: Use image node_id 1 to create a new HRFPN object from inherited base classes: nn with example: obj = HRFPN(in_channels, out_channels, num_outs, pooling_type, conv_cfg, norm_cfg, with_cp, stride)