code: def __init__(
      self,
      in_out_channels,
      num_heads,
      hidden_channels_ffn=1024,
      kernel_size_fft=3,
      dropout_p=0.1,
  ):
      super().__init__()
      self.self_attn = nn.MultiheadAttention(
          in_out_channels, num_heads, dropout=dropout_p
      )
  
      padding = (kernel_size_fft - 1) // 2
      self.conv1 = nn.Conv1d(
          in_out_channels,
          hidden_channels_ffn,
          kernel_size=kernel_size_fft,
          padding=padding,
      )
      self.conv2 = nn.Conv1d(
          hidden_channels_ffn,
          in_out_channels,
          kernel_size=kernel_size_fft,
          padding=padding,
      )
  
      self.norm1 = nn.LayerNorm(in_out_channels)
      self.norm2 = nn.LayerNorm(in_out_channels)
  
      self.dropout1 = nn.Dropout(dropout_p)
      self.dropout2 = nn.Dropout(dropout_p)
  
file_path: TTS/TTS/tts/layers/generic/transformer.py
imports: import torch
  import torch.nn.functional
  from torch import nn
label_desc: Use image node_id 1 to create a new FFTransformer object from inherited base classes: nn with example: obj = FFTransformer(in_out_channels, num_heads, hidden_channels_ffn, kernel_size_fft, dropout_p)