code: def __init__(
      self,
      supervision_channels: int,
      input_channels: int = 3,
      stack_level: int = 8,
      depth: int = 4,
      features: int = 256,
      activation=ACT_RELU,
      repeats=1,
      pooling_block=nn.MaxPool2d,
      supervision_block=HGSupervisionBlock,
  ):
      super().__init__(
          input_channels=input_channels,
          stack_level=stack_level,
          depth=depth,
          features=features,
          activation=activation,
          repeats=repeats,
          pooling_block=pooling_block,
      )
  
      self.supervision_blocks = nn.ModuleList(
          [
              supervision_block(features, supervision_channels)
              for _ in range(stack_level - 1)
          ]
      )
  
imports: import inspect
  from collections import OrderedDict
  from typing import List, Callable, Tuple
  import torch
  from pytorch_toolbelt.modules import ACT_RELU, get_activation_block
  from pytorch_toolbelt.modules.encoders import EncoderModule, make_n_channel_input
  from torch import nn, Tensor
label_desc: Use image node_id 1 to create a new StackedSupervisedHGEncoder object from inherited base classes: StackedHGEncoder with example: obj = StackedSupervisedHGEncoder(supervision_channels, input_channels, stack_level, depth, features, activation, repeats, pooling_block, supervision_block)