class_docstr: the location-variable convolutions
class_docstr_tok: ["the","location-variable","convolutions"]
code: def __init__(
      self,
      in_channels,
      cond_channels,
      upsample_ratio,
      conv_layers=4,
      conv_kernel_size=3,
      cond_hop_length=256,
      kpnet_hidden_channels=64,
      kpnet_conv_size=3,
      kpnet_dropout=0.0,
  ):
      super().__init__()
  
      self.cond_hop_length = cond_hop_length
      self.conv_layers = conv_layers
      self.conv_kernel_size = conv_kernel_size
      self.convs = torch.nn.ModuleList()
  
      self.upsample = torch.nn.ConvTranspose1d(
          in_channels,
          in_channels,
          kernel_size=upsample_ratio * 2,
          stride=upsample_ratio,
          padding=upsample_ratio // 2 + upsample_ratio % 2,
          output_padding=upsample_ratio % 2,
      )
  
      self.kernel_predictor = KernelPredictor(
          cond_channels=cond_channels,
          conv_in_channels=in_channels,
          conv_out_channels=2 * in_channels,
          conv_layers=conv_layers,
          conv_kernel_size=conv_kernel_size,
          kpnet_hidden_channels=kpnet_hidden_channels,
          kpnet_conv_size=kpnet_conv_size,
          kpnet_dropout=kpnet_dropout,
      )
  
      for i in range(conv_layers):
          padding = (3**i) * int((conv_kernel_size - 1) / 2)
          conv = torch.nn.Conv1d(
              in_channels,
              in_channels,
              kernel_size=conv_kernel_size,
              padding=padding,
              dilation=3**i,
          )
  
          self.convs.append(conv)
  
file_path: TTS/TTS/vocoder/layers/lvc_block.py
imports: import torch
  import torch.nn.functional
label_desc: Use image node_id 1 to create a new LVCBlock object from inherited base classes: torch.nn with example: obj = LVCBlock(in_channels, cond_channels, upsample_ratio, conv_layers, conv_kernel_size, cond_hop_length, kpnet_hidden_channels, kpnet_conv_size, kpnet_dropout)