class_docstr: Network is 2-layer 1D convolutions with leaky relu activation and then
  followed by layer normalization then a dropout layer and finally an
  extra linear layer to project the hidden states into the output sequence.
  
  Args:
      channels_in (int): Number of in channels for conv layers.
      channels_out (int): Number of out channels for the last linear layer.
      kernel_size (int): Size the kernel for the conv layers.
      p_dropout (float): Probability of dropout.
      lrelu_slope (float): Slope for the leaky relu.
  
  Inputs: inputs, mask
      - **inputs** (batch, time, dim): Tensor containing input vector
      - **mask** (batch, time): Tensor containing indices to be masked
  Returns:
      - **outputs** (batch, time): Tensor produced by last linear layer.
class_docstr_tok: ["Network","is","2-layer","1D","convolutions","with","leaky","relu","activation","and","then","followed","by","layer","normalization","then","a","dropout","layer","and","finally","an","extra","linear","layer","to","project","the","hidden","states","into","the","output","sequence",".","Args",":","channels_in","(","int",")",":","Number","of","in","channels","for","conv","layers",".","channels_out","(","int",")",":","Number","of","out","channels","for","the","last","linear","layer",".","kernel_size","(","int",")",":","Size","the","kernel","for","the","conv","layers",".","p_dropout","(","float",")",":","Probability","of","dropout",".","lrelu_slope","(","float",")",":","Slope","for","the","leaky","relu",".","Inputs",":","inputs",",","mask","-","*","*","inputs","*","*","(","batch",",","time",",","dim",")",":","Tensor","containing","input","vector","-","*","*","mask","*","*","(","batch",",","time",")",":","Tensor","containing","indices","to","be","masked","Returns",":","-","*","*","outputs","*","*","(","batch",",","time",")",":","Tensor","produced","by","last","linear","layer","."]
docstr: Shapes:
      x: :math: `[B, T_src, C]`
      mask: :math: `[B, T_src]`
docstr_tok: ["Shapes",":","x",":",":","math",":","`","[","B",",","T_src",",","C","]","`","mask",":",":","math",":","`","[","B",",","T_src","]","`"]
code: def forward(
      self, x: torch.Tensor, mask: torch.Tensor
  ) -> torch.Tensor:
      """
      Shapes:
          x: :math: `[B, T_src, C]`
          mask: :math: `[B, T_src]`
      """
      for layer in self.layers:
          x = layer(x)
      x = self.linear_layer(x)
      x = x.squeeze(-1)
      x = x.masked_fill(mask, 0.0)
      return x
  
imports: import torch
  import torch.nn
  from TTS.tts.layers.delightful_tts.conv_layers import ConvTransposed
label_desc: Use image node_id 2 for calling the VariancePredictor obj's underlying member method code with example usage: obj.forward(x, mask) and returns: x