code: def _make_hour_glass(
      self,
      block: Type[Bottleneck2D],
      num_blocks: int,
      planes: int,
      depth: int,
  ) -> nn.ModuleList:
      hgl = []
      for i in range(depth):
          res = []
          for _ in range(3):
              res.append(self._make_residual(block, num_blocks, planes))
          if i == 0:
              res.append(self._make_residual(block, num_blocks, planes))
          hgl.append(nn.ModuleList(res))
      return nn.ModuleList(hgl)
  
imports: from typing import Any, Dict, List, NamedTuple, Optional, Tuple, Type, Union
  import torch
  import torch.nn.functional
  from torch import nn
  from torch.nn.functional import pixel_shuffle, softmax
  from kornia.core import Module, Tensor
label_desc: Use image node_id 3 for calling the Hourglass obj's underlying member method code with example usage: obj._make_hour_glass(block, num_blocks, planes, depth) and returns: nn