code: def _build_stage(
      self,
      in_channels: int,
      out_channels: int,
      block_type: Type,
      block_kwargs: Mapping,
      num_blocks: int,
  ):
      blocks = []
      for _ in range(num_blocks):
          blocks.append(
              block_type(in_channels, out_channels, **block_kwargs)
          )
          in_channels = out_channels
      if num_blocks == 1:
          return blocks[0]
      return nn.Sequential(*blocks)
  
file_path: pytorch-toolbelt/pytorch_toolbelt/modules/decoders/unet.py
imports: from typing import List, Union, Type, Tuple, Mapping
  import torch
  import logging
  from torch import nn
  from pytorch_toolbelt.modules.unet import UnetBlock, UnetResidualBlock
  from pytorch_toolbelt.modules.interfaces import AbstractDecoder, FeatureMapsSpecification
  from pytorch_toolbelt.modules.upsample import AbstractResizeLayer, UpsampleLayerType, instantiate_upsample_block, DeconvolutionUpsample2d
  from pytorch_toolbelt.modules.normalization import NORM_BATCH, instantiate_normalization_block
  from pytorch_toolbelt.modules.activations import ACT_RELU
label_desc: Use image node_id 2 for calling the UNetDecoder obj's underlying member method code with example usage: obj._build_stage(in_channels, out_channels, block_type, block_kwargs, num_blocks) and returns: nn, blocks