class_docstr: High-Resolution Module for HRNet.
  
  In this module, every branch has 4 BasicBlocks/Bottlenecks. Fusion/Exchange
  is in this module.
code: def _make_fuse_layers(self):
      if self.num_branches == 1:
          return None
  
      num_branches = self.num_branches
      in_channels = self.in_channels
      fuse_layers = []
      num_out_branches = num_branches if self.multiscale_output else 1
      for i in range(num_out_branches):
          fuse_layer = []
          for j in range(num_branches):
              if j > i:
                  fuse_layer.append(
                      nn.Sequential(
                          build_conv_layer(
                              self.conv_cfg,
                              in_channels[j],
                              in_channels[i],
                              kernel_size=1,
                              stride=1,
                              padding=0,
                              bias=False,
                          ),
                          build_norm_layer(
                              self.norm_cfg, in_channels[i]
                          )[1],
                          nn.Upsample(
                              scale_factor=2 ** (j - i), mode="nearest"
                          ),
                      )
                  )
              elif j == i:
                  fuse_layer.append(None)
              else:
                  conv_downsamples = []
                  for k in range(i - j):
                      if k == i - j - 1:
                          conv_downsamples.append(
                              nn.Sequential(
                                  build_conv_layer(
                                      self.conv_cfg,
                                      in_channels[j],
                                      in_channels[i],
                                      kernel_size=3,
                                      stride=2,
                                      padding=1,
                                      bias=False,
                                  ),
                                  build_norm_layer(
                                      self.norm_cfg, in_channels[i]
                                  )[1],
                              )
                          )
                      else:
                          conv_downsamples.append(
                              nn.Sequential(
                                  build_conv_layer(
                                      self.conv_cfg,
                                      in_channels[j],
                                      in_channels[j],
                                      kernel_size=3,
                                      stride=2,
                                      padding=1,
                                      bias=False,
                                  ),
                                  build_norm_layer(
                                      self.norm_cfg, in_channels[j]
                                  )[1],
                                  nn.ReLU(inplace=False),
                              )
                          )
                  fuse_layer.append(nn.Sequential(*conv_downsamples))
          fuse_layers.append(nn.ModuleList(fuse_layer))
  
      return nn.ModuleList(fuse_layers)
  
imports: import warnings
  import torch.nn
  from mmcv.cnn import build_conv_layer, build_norm_layer
  from mmengine.model import BaseModule, ModuleList, Sequential
  from torch.nn.modules.batchnorm import _BatchNorm
  from mmdet.registry import MODELS
  from .resnet import BasicBlock, Bottleneck
label_desc: Use image node_id 5 for calling the HRModule obj's underlying member method code with example usage: obj._make_fuse_layers() and returns: nn, None