code: def __init__(
      self,
      upsample_factors,
      nonlinear_activation=None,
      nonlinear_activation_params={},
      interpolate_mode="nearest",
      freq_axis_kernel_size=1,
      aux_channels=80,
      aux_context_window=0,
      use_causal_conv=False,
  ):
      super(ConvUpsample, self).__init__()
      self.aux_context_window = aux_context_window
      self.use_causal_conv = use_causal_conv and aux_context_window > 0
      # To capture wide-context information in conditional features
      kernel_size = (
          aux_context_window + 1
          if use_causal_conv
          else 2 * aux_context_window + 1
      )
      # NOTE(kan-bayashi): Here do not use padding because the input is already padded
      self.conv_in = torch.nn.Conv1d(
          aux_channels,
          aux_channels,
          kernel_size=kernel_size,
          bias=False,
      )
      self.upsample = UpsampleNetwork(
          upsample_factors=upsample_factors,
          nonlinear_activation=nonlinear_activation,
          nonlinear_activation_params=nonlinear_activation_params,
          interpolate_mode=interpolate_mode,
          freq_axis_kernel_size=freq_axis_kernel_size,
          use_causal_conv=use_causal_conv,
      )
  
file_path: TTS/TTS/vocoder/layers/upsample.py
imports: import torch
  from torch.nn import functional
label_desc: Use image node_id 1 to create a new ConvUpsample object from inherited base classes: torch.nn with example: obj = ConvUpsample(upsample_factors, nonlinear_activation, nonlinear_activation_params, interpolate_mode, freq_axis_kernel_size, aux_channels, aux_context_window, use_causal_conv)