class_docstr: Multi-head self attention implement.
  
  Args:
      multiheads (int): The number of heads.
      head_dim (object): Dimention of each head.
      mask_right (boolean): whether to mask right words.
  
  Returns:
      object: Weighted sum after attention.
docstr: add multiheads, multiheads and mask_right into layer config.
  
  Returns:
      dict: config of SelfAttention layer.
docstr_tok: ["add","multiheads",",","multiheads","and","mask_right","into","layer","config",".","Returns",":","dict",":","config","of","SelfAttention","layer","."]
code: def get_config(self):
      """add multiheads, multiheads and mask_right into layer config.
  
      Returns:
          dict: config of SelfAttention layer.
      """
      config = super(SelfAttention, self).get_config()
      config.update(
          {
              "multiheads": self.multiheads,
              "head_dim": self.head_dim,
              "mask_right": self.mask_right,
          }
      )
      return config
  
imports: import tensorflow.compat.v1.keras
  from tensorflow.compat.v1.linalg import einsum
  from tensorflow.compat.v1.keras import layers
  from tensorflow.compat.v1.keras import backend
label_desc: Use image node_id 6 for calling the SelfAttention obj's underlying member method code with example usage: obj.get_config() and returns: config