class_docstr: Residual affine coupling block module.
  
  This is a module of residual affine coupling block, which used as "Flow" in
  `Conditional Variational Autoencoder with Adversarial Learning for End-to-End
  Text-to-Speech`_.
  
  .. _`Conditional Variational Autoencoder with Adversarial Learning for End-to-End
      Text-to-Speech`: https://arxiv.org/abs/2006.04558
docstr: Initilize ResidualAffineCouplingBlock module.
  
  Args:
      in_channels (int): Number of input channels.
      hidden_channels (int): Number of hidden channels.
      flows (int): Number of flows.
      kernel_size (int): Kernel size for WaveNet.
      base_dilation (int): Base dilation factor for WaveNet.
      layers (int): Number of layers of WaveNet.
      stacks (int): Number of stacks of WaveNet.
      global_channels (int): Number of global channels.
      dropout_rate (float): Dropout rate.
      use_weight_norm (bool): Whether to use weight normalization in WaveNet.
      bias (bool): Whether to use bias paramters in WaveNet.
      use_only_mean (bool): Whether to estimate only mean.
code: def __init__(
      self,
      in_channels: int = 192,
      hidden_channels: int = 192,
      flows: int = 4,
      kernel_size: int = 5,
      base_dilation: int = 1,
      layers: int = 4,
      global_channels: int = -1,
      dropout_rate: float = 0.0,
      use_weight_norm: bool = True,
      bias: bool = True,
      use_only_mean: bool = True,
  ):
      """Initilize ResidualAffineCouplingBlock module.
  
      Args:
          in_channels (int): Number of input channels.
          hidden_channels (int): Number of hidden channels.
          flows (int): Number of flows.
          kernel_size (int): Kernel size for WaveNet.
          base_dilation (int): Base dilation factor for WaveNet.
          layers (int): Number of layers of WaveNet.
          stacks (int): Number of stacks of WaveNet.
          global_channels (int): Number of global channels.
          dropout_rate (float): Dropout rate.
          use_weight_norm (bool): Whether to use weight normalization in WaveNet.
          bias (bool): Whether to use bias paramters in WaveNet.
          use_only_mean (bool): Whether to estimate only mean.
  
      """
      super().__init__()
  
      self.flows = torch.nn.ModuleList()
      for i in range(flows):
          self.flows += [
              ResidualAffineCouplingLayer(
                  in_channels=in_channels,
                  hidden_channels=hidden_channels,
                  kernel_size=kernel_size,
                  base_dilation=base_dilation,
                  layers=layers,
                  stacks=1,
                  global_channels=global_channels,
                  dropout_rate=dropout_rate,
                  use_weight_norm=use_weight_norm,
                  bias=bias,
                  use_only_mean=use_only_mean,
              )
          ]
          self.flows += [FlipFlow()]
  
file_path: espnet/espnet2/gan_tts/vits/residual_coupling.py
imports: from typing import Optional, Tuple, Union
  import torch
  from espnet2.gan_tts.vits.flow import FlipFlow
  from espnet2.gan_tts.wavenet import WaveNet
label_desc: Use image node_id 1 to create a new ResidualAffineCouplingBlock object from inherited base classes: torch.nn with example: obj = ResidualAffineCouplingBlock(in_channels, hidden_channels, flows, kernel_size, base_dilation, layers, global_channels, dropout_rate, use_weight_norm, bias, use_only_mean)