class_docstr: Dilated depth-separable conv module.
class_docstr_tok: ["Dilated","depth-separable","conv","module","."]
docstr: Initialize DilatedDepthSeparableConv module.
  
  Args:
      channels (int): Number of channels.
      kernel_size (int): Kernel size.
      layers (int): Number of layers.
      dropout_rate (float): Dropout rate.
      eps (float): Epsilon for layer norm.
docstr_tok: ["Initialize","DilatedDepthSeparableConv","module",".","Args",":","channels","(","int",")",":","Number","of","channels",".","kernel_size","(","int",")",":","Kernel","size",".","layers","(","int",")",":","Number","of","layers",".","dropout_rate","(","float",")",":","Dropout","rate",".","eps","(","float",")",":","Epsilon","for","layer","norm","."]
code: def __init__(
      self,
      channels: int,
      kernel_size: int,
      layers: int,
      dropout_rate: float = 0.0,
      eps: float = 1e-5,
  ):
      """Initialize DilatedDepthSeparableConv module.
  
      Args:
          channels (int): Number of channels.
          kernel_size (int): Kernel size.
          layers (int): Number of layers.
          dropout_rate (float): Dropout rate.
          eps (float): Epsilon for layer norm.
  
      """
      super().__init__()
  
      self.convs = torch.nn.ModuleList()
      for i in range(layers):
          dilation = kernel_size**i
          padding = (kernel_size * dilation - dilation) // 2
          self.convs += [
              torch.nn.Sequential(
                  torch.nn.Conv1d(
                      channels,
                      channels,
                      kernel_size,
                      groups=channels,
                      dilation=dilation,
                      padding=padding,
                  ),
                  Transpose(1, 2),
                  torch.nn.LayerNorm(
                      channels,
                      eps=eps,
                      elementwise_affine=True,
                  ),
                  Transpose(1, 2),
                  torch.nn.GELU(),
                  torch.nn.Conv1d(
                      channels,
                      channels,
                      1,
                  ),
                  Transpose(1, 2),
                  torch.nn.LayerNorm(
                      channels,
                      eps=eps,
                      elementwise_affine=True,
                  ),
                  Transpose(1, 2),
                  torch.nn.GELU(),
                  torch.nn.Dropout(dropout_rate),
              )
          ]
  
imports: import math
  from typing import Optional, Tuple, Union
  import torch
  from espnet2.gan_tts.vits.transform import piecewise_rational_quadratic_transform
label_desc: Use image node_id 1 to create a new DilatedDepthSeparableConv object from inherited base classes: torch.nn with example: obj = DilatedDepthSeparableConv(channels, kernel_size, layers, dropout_rate, eps)