the attention weight.
     * **is_causal** (*bool*) -- If specified, applies a causal
       mask as attention mask. Mutually exclusive with providing
       attn_mask. Default: "False".

     * **average_attn_weights** (*bool*) -- If true, indicates
       that the returned "attn_weights" should be averaged across
       heads. Otherwise, "attn_weights" are provided separately
       per head. Note that this flag only has an effect when
       "need_weights=True". Default: "True" (i.e. average weights
       across heads)

  Return type:
     *Tuple*[*Tensor*, *Optional*[*Tensor*]]

  Outputs:
     * **attn_output** - Attention outputs of shape (L, E) when
       input is unbatched, (L, N, E) when "batch_first=False" or
       (N, L, E) when "batch_first=True", where L is the target
       sequence length, N is the batch size, and E is the
       embedding dimension "embed_dim".
