class_docstr: HighResolutionModule
  Building block of the PoseHigherResolutionNet (see lower)
  arXiv: https://arxiv.org/abs/1908.10357
  Args:
      num_branches (int): number of branches of the modyle
      blocks (str): type of block of the module
      num_blocks (int): number of blocks of the module
      num_inchannels (int): number of input channels of the module
      num_channels (list): number of channels of each branch
      multi_scale_output (bool): only used by the last module of PoseHigherResolutionNet
class_docstr_tok: ["HighResolutionModule","Building","block","of","the","PoseHigherResolutionNet","(","see","lower",")","arXiv",":","https",":","\/\/arxiv.org\/abs\/1908.10357","Args",":","num_branches","(","int",")",":","number","of","branches","of","the","modyle","blocks","(","str",")",":","type","of","block","of","the","module","num_blocks","(","int",")",":","number","of","blocks","of","the","module","num_inchannels","(","int",")",":","number","of","input","channels","of","the","module","num_channels","(","list",")",":","number","of","channels","of","each","branch","multi_scale_output","(","bool",")",":","only","used","by","the","last","module","of","PoseHigherResolutionNet"]
code: def _make_fuse_layers(self):
      if self.num_branches == 1:
          return None
  
      num_branches = self.num_branches
      num_inchannels = self.num_inchannels
      fuse_layers = []
      for i in range(num_branches if self.multi_scale_output else 1):
          fuse_layer = []
          for j in range(num_branches):
              if j > i:
                  fuse_layer.append(
                      nn.Sequential(
                          nn.Conv2d(
                              num_inchannels[j],
                              num_inchannels[i],
                              1,
                              1,
                              0,
                              bias=False,
                          ),
                          nn.BatchNorm2d(num_inchannels[i]),
                          nn.Upsample(
                              scale_factor=2 ** (j - i), mode="nearest"
                          ),
                      )
                  )
              elif j == i:
                  fuse_layer.append(None)
              else:
                  conv3x3s = []
                  for k in range(i - j):
                      if k == i - j - 1:
                          num_outchannels_conv3x3 = num_inchannels[i]
                          conv3x3s.append(
                              nn.Sequential(
                                  nn.Conv2d(
                                      num_inchannels[j],
                                      num_outchannels_conv3x3,
                                      3,
                                      2,
                                      1,
                                      bias=False,
                                  ),
                                  nn.BatchNorm2d(
                                      num_outchannels_conv3x3
                                  ),
                              )
                          )
                      else:
                          num_outchannels_conv3x3 = num_inchannels[j]
                          conv3x3s.append(
                              nn.Sequential(
                                  nn.Conv2d(
                                      num_inchannels[j],
                                      num_outchannels_conv3x3,
                                      3,
                                      2,
                                      1,
                                      bias=False,
                                  ),
                                  nn.BatchNorm2d(
                                      num_outchannels_conv3x3
                                  ),
                                  nn.ReLU(True),
                              )
                          )
                  fuse_layer.append(nn.Sequential(*conv3x3s))
          fuse_layers.append(nn.ModuleList(fuse_layer))
  
      return nn.ModuleList(fuse_layers)
  
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 5 for calling the HighResolutionModule obj's underlying member method code with example usage: obj._make_fuse_layers() and returns: nn, None