class_docstr: Uses glow decoder with some modifications.
  ::
  
      Squeeze -> ActNorm -> InvertibleConv1x1 -> AffineCoupling -> Unsqueeze
  
  Args:
      in_channels (int): channels of input tensor.
      hidden_channels (int): hidden decoder channels.
      kernel_size (int): Coupling block kernel size. (Wavenet filter kernel size.)
      dilation_rate (int): rate to increase dilation by each layer in a decoder block.
      num_flow_blocks (int): number of decoder blocks.
      num_coupling_layers (int): number coupling layers. (number of wavenet layers.)
      dropout_p (float): wavenet dropout rate.
      sigmoid_scale (bool): enable/disable sigmoid scaling in coupling layer.
code: def preprocess(self, y, y_lengths, y_max_length):
      if y_max_length is not None:
          y_max_length = (
              torch.div(y_max_length, self.n_sqz, rounding_mode="floor")
              * self.n_sqz
          )
          y = y[:, :, :y_max_length]
      y_lengths = (
          torch.div(y_lengths, self.n_sqz, rounding_mode="floor")
          * self.n_sqz
      )
      return y, y_lengths, y_max_length
  
file_path: TTS/TTS/tts/layers/overflow/decoder.py
imports: import torch
  from torch import nn
  from TTS.tts.layers.glow_tts.decoder import Decoder
  from TTS.tts.utils.helpers import sequence_mask
label_desc: Use image node_id 3 for calling the Decoder obj's underlying member method code with example usage: obj.preprocess(y, y_lengths, y_max_length) and returns: y,  y_lengths,  y_max_length