code: def __init__(
      self,
      input_embed_dim,
      source_embed_dim,
      output_embed_dim,
      bias=False,
  ):
      super().__init__()
  
      self.input_proj = Linear(
          input_embed_dim, source_embed_dim, bias=bias
      )
      self.output_proj = Linear(
          input_embed_dim + source_embed_dim,
          output_embed_dim,
          bias=bias,
      )
  
imports: from typing import Dict, List, Optional, Tuple
  import torch
  import torch.nn
  import torch.nn.functional
  from fairseq import utils
  from fairseq.models import FairseqEncoder, FairseqEncoderDecoderModel, FairseqIncrementalDecoder, register_model, register_model_architecture
  from fairseq.modules import AdaptiveSoftmax, FairseqDropout
  from torch import Tensor
label_desc: Use image node_id 1 to create a new AttentionLayer object from inherited base classes: nn with example: obj = AttentionLayer(input_embed_dim, source_embed_dim, output_embed_dim, bias)