class_docstr: PoseHigherResolutionNet
  Composed of several HighResolutionModule tied together with ConvNets
  Adapted from the GitHub version to fit with HRFPN and the Detectron2 infrastructure
  arXiv: https://arxiv.org/abs/1908.10357
class_docstr_tok: ["PoseHigherResolutionNet","Composed","of","several","HighResolutionModule","tied","together","with","ConvNets","Adapted","from","the","GitHub","version","to","fit","with","HRFPN","and","the","Detectron2","infrastructure","arXiv",":","https",":","\/\/arxiv.org\/abs\/1908.10357"]
code: def __init__(self, cfg, **kwargs):
      self.inplanes = cfg.MODEL.HRNET.STEM_INPLANES
      super(PoseHigherResolutionNet, self).__init__()
  
      # stem net
      self.conv1 = nn.Conv2d(
          3, 64, kernel_size=3, stride=2, padding=1, bias=False
      )
      self.bn1 = nn.BatchNorm2d(64, momentum=BN_MOMENTUM)
      self.conv2 = nn.Conv2d(
          64, 64, kernel_size=3, stride=2, padding=1, bias=False
      )
      self.bn2 = nn.BatchNorm2d(64, momentum=BN_MOMENTUM)
      self.relu = nn.ReLU(inplace=True)
      self.layer1 = self._make_layer(Bottleneck, 64, 4)
  
      self.stage2_cfg = cfg.MODEL.HRNET.STAGE2
      num_channels = self.stage2_cfg.NUM_CHANNELS
      block = blocks_dict[self.stage2_cfg.BLOCK]
      num_channels = [
          num_channels[i] * block.expansion
          for i in range(len(num_channels))
      ]
      self.transition1 = self._make_transition_layer(
          [256], num_channels
      )
      self.stage2, pre_stage_channels = self._make_stage(
          self.stage2_cfg, num_channels
      )
  
      self.stage3_cfg = cfg.MODEL.HRNET.STAGE3
      num_channels = self.stage3_cfg.NUM_CHANNELS
      block = blocks_dict[self.stage3_cfg.BLOCK]
      num_channels = [
          num_channels[i] * block.expansion
          for i in range(len(num_channels))
      ]
      self.transition2 = self._make_transition_layer(
          pre_stage_channels, num_channels
      )
      self.stage3, pre_stage_channels = self._make_stage(
          self.stage3_cfg, num_channels
      )
  
      self.stage4_cfg = cfg.MODEL.HRNET.STAGE4
      num_channels = self.stage4_cfg.NUM_CHANNELS
      block = blocks_dict[self.stage4_cfg.BLOCK]
      num_channels = [
          num_channels[i] * block.expansion
          for i in range(len(num_channels))
      ]
      self.transition3 = self._make_transition_layer(
          pre_stage_channels, num_channels
      )
      self.stage4, pre_stage_channels = self._make_stage(
          self.stage4_cfg, num_channels, multi_scale_output=True
      )
  
      self._out_features = []
      self._out_feature_channels = {}
      self._out_feature_strides = {}
  
      for i in range(cfg.MODEL.HRNET.STAGE4.NUM_BRANCHES):
          self._out_features.append("p%d" % (i + 1))
          self._out_feature_channels.update(
              {
                  self._out_features[
                      -1
                  ]: cfg.MODEL.HRNET.STAGE4.NUM_CHANNELS[i]
              }
          )
          self._out_feature_strides.update({self._out_features[-1]: 1})
  
imports: from __future__ import absolute_import, division, print_function
  import logging
  import torch.nn
  from detectron2.layers import ShapeSpec
  from detectron2.modeling.backbone import BACKBONE_REGISTRY
  from detectron2.modeling.backbone.backbone import Backbone
label_desc: Use image node_id 1 to create a new PoseHigherResolutionNet object from inherited base classes: Backbone with example: obj = PoseHigherResolutionNet(cfg)