docstr: Feed Forward module for conformer block.
  
  Args:
      d_model (int): The dimension of model.
      kernel_size (int): Size of the kernels for conv layers.
      dropout (float): probability of dropout.
      expansion_factor (int): The factor by which to project the number of channels.
      lrelu_slope (int): the negative slope factor for the leaky relu activation.
  
  Inputs: inputs
      - **inputs** (batch, time, dim): Tensor containing input vector
  Returns:
      - **outputs** (batch, time, dim): Tensor produced by the feed forward module.
docstr_tok: ["Feed","Forward","module","for","conformer","block",".","Args",":","d_model","(","int",")",":","The","dimension","of","model",".","kernel_size","(","int",")",":","Size","of","the","kernels","for","conv","layers",".","dropout","(","float",")",":","probability","of","dropout",".","expansion_factor","(","int",")",":","The","factor","by","which","to","project","the","number","of","channels",".","lrelu_slope","(","int",")",":","the","negative","slope","factor","for","the","leaky","relu","activation",".","Inputs",":","inputs","-","*","*","inputs","*","*","(","batch",",","time",",","dim",")",":","Tensor","containing","input","vector","Returns",":","-","*","*","outputs","*","*","(","batch",",","time",",","dim",")",":","Tensor","produced","by","the","feed","forward","module","."]
code: def __init__(
      self,
      d_model: int,
      kernel_size: int,
      dropout: float,
      lrelu_slope: float,
      expansion_factor: int = 4,
  ):
      """
      Feed Forward module for conformer block.
  
      Args:
          d_model (int): The dimension of model.
          kernel_size (int): Size of the kernels for conv layers.
          dropout (float): probability of dropout.
          expansion_factor (int): The factor by which to project the number of channels.
          lrelu_slope (int): the negative slope factor for the leaky relu activation.
  
      Inputs: inputs
          - **inputs** (batch, time, dim): Tensor containing input vector
      Returns:
          - **outputs** (batch, time, dim): Tensor produced by the feed forward module.
      """
      super().__init__()
      self.dropout = nn.Dropout(dropout)
      self.ln = nn.LayerNorm(d_model)
      self.conv_1 = nn.Conv1d(
          d_model,
          d_model * expansion_factor,
          kernel_size=kernel_size,
          padding=kernel_size // 2,
      )
      self.act = nn.LeakyReLU(lrelu_slope)
      self.conv_2 = nn.Conv1d(
          d_model * expansion_factor, d_model, kernel_size=1
      )
  
imports: import math
  from typing import Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from TTS.tts.layers.delightful_tts.conv_layers import Conv1dGLU, DepthWiseConv1d, PointwiseConv1d
  from TTS.tts.layers.delightful_tts.networks import GLUActivation
label_desc: Use image node_id 1 to create a new FeedForward object from inherited base classes: nn with example: obj = FeedForward(d_model, kernel_size, dropout, lrelu_slope, expansion_factor)