code: def __init__(
      self,
      n_layer,
      n_head,
      d_model,
      d_head,
      d_inner,
      kernel_size,
      dropout,
      dropatt,
      dropemb=0.0,
      pre_lnorm=False,
      condition_types=[],
  ):
      super(FFTransformerDecoder, self).__init__()
      self.d_model = d_model
      self.n_head = n_head
      self.d_head = d_head
  
      self.pos_emb = PositionalEmbedding(self.d_model)
      self.drop = nn.Dropout(dropemb)
      self.layers = nn.ModuleList()
      self.cond_input = ConditionalInput(
          d_model, d_model, condition_types
      )
  
      for _ in range(n_layer):
          self.layers.append(
              TransformerLayer(
                  n_head,
                  d_model,
                  d_head,
                  d_inner,
                  kernel_size,
                  dropout,
                  dropatt=dropatt,
                  pre_lnorm=pre_lnorm,
                  condition_types=condition_types,
              )
          )
  
imports: from typing import Optional
  import torch
  import torch.nn
  import torch.nn.functional
  from nemo.collections.tts.modules.submodules import ConditionalInput, ConditionalLayerNorm, LinearNorm
  from nemo.collections.tts.parts.utils.helpers import get_mask_from_lengths
  from nemo.core.classes import NeuralModule, adapter_mixins, typecheck
  from nemo.core.neural_types.elements import EncodedRepresentation, LengthsType, MaskType, TokenIndex
  from nemo.core.neural_types.neural_type import NeuralType
label_desc: Use image node_id 1 to create a new FFTransformerDecoder object from inherited base classes: NeuralModule with example: obj = FFTransformerDecoder(n_layer, n_head, d_model, d_head, d_inner, kernel_size, dropout, dropatt, dropemb, pre_lnorm, condition_types)