code: def _get_decoder(
      num_flow_blocks_dec=None,
      hidden_channels_dec=None,
      reset_weights=True,
  ):
      config = deepcopy(config_global)
      config.num_flow_blocks_dec = (
          num_flow_blocks_dec
          if num_flow_blocks_dec is not None
          else config.num_flow_blocks_dec
      )
      config.hidden_channels_dec = (
          hidden_channels_dec
          if hidden_channels_dec is not None
          else config.hidden_channels_dec
      )
      config.dropout_p_dec = (
          0.0  # turn off dropout to check invertibility
      )
      decoder = Decoder(
          config.out_channels,
          config.hidden_channels_dec,
          config.kernel_size_dec,
          config.dilation_rate,
          config.num_flow_blocks_dec,
          config.num_block_layers,
          config.dropout_p_dec,
          config.num_splits,
          config.num_squeeze,
          config.sigmoid_scale,
          config.c_in_channels,
      ).to(device)
      if reset_weights:
          reset_all_weights(decoder)
      return decoder
  
imports: import os
  import random
  import unittest
  from copy import deepcopy
  import torch
  from tests import get_tests_output_path
  from TTS.tts.configs.overflow_config import OverflowConfig
  from TTS.tts.layers.overflow.common_layers import Encoder, Outputnet, OverflowUtils
  from TTS.tts.layers.overflow.decoder import Decoder
  from TTS.tts.layers.overflow.neural_hmm import EmissionModel, NeuralHMM, TransitionModel
  from TTS.tts.models.overflow import Overflow
  from TTS.tts.utils.helpers import sequence_mask
  from TTS.utils.audio import AudioProcessor
label_desc: Use image node_id 1 for calling the TestOverflowDecoder obj's underlying member method code with example usage: obj._get_decoder(num_flow_blocks_dec, hidden_channels_dec, reset_weights) and returns: decoder