class_docstr: Stack of Glow Decoder Modules.
  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.
class_docstr_tok: ["Stack","of","Glow","Decoder","Modules",".","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 __init__(
      self,
      in_channels,
      hidden_channels,
      kernel_size,
      dilation_rate,
      num_flow_blocks,
      num_coupling_layers,
      dropout_p=0.0,
      num_splits=4,
      num_squeeze=2,
      sigmoid_scale=False,
      c_in_channels=0,
  ):
      super().__init__()
  
      self.in_channels = in_channels
      self.hidden_channels = hidden_channels
      self.kernel_size = kernel_size
      self.dilation_rate = dilation_rate
      self.num_flow_blocks = num_flow_blocks
      self.num_coupling_layers = num_coupling_layers
      self.dropout_p = dropout_p
      self.num_splits = num_splits
      self.num_squeeze = num_squeeze
      self.sigmoid_scale = sigmoid_scale
      self.c_in_channels = c_in_channels
  
      self.flows = nn.ModuleList()
      for _ in range(num_flow_blocks):
          self.flows.append(ActNorm(channels=in_channels * num_squeeze))
          self.flows.append(
              InvConvNear(
                  channels=in_channels * num_squeeze,
                  num_splits=num_splits,
              )
          )
          self.flows.append(
              CouplingBlock(
                  in_channels * num_squeeze,
                  hidden_channels,
                  kernel_size=kernel_size,
                  dilation_rate=dilation_rate,
                  num_layers=num_coupling_layers,
                  c_in_channels=c_in_channels,
                  dropout_p=dropout_p,
                  sigmoid_scale=sigmoid_scale,
              )
          )
  
file_path: TTS/TTS/tts/layers/glow_tts/decoder.py
imports: import torch
  from torch import nn
  from TTS.tts.layers.glow_tts.glow import InvConvNear, CouplingBlock
  from TTS.tts.layers.generic.normalization import ActNorm
label_desc: Use image node_id 1 to create a new Decoder object from inherited base classes: nn with example: obj = Decoder(in_channels, hidden_channels, kernel_size, dilation_rate, num_flow_blocks, num_coupling_layers, dropout_p, num_splits, num_squeeze, sigmoid_scale, c_in_channels)