forward(query, key, value, key_padding_mask=None, need_weights=True, attn_mask=None, average_attn_weights=True, is_causal=False)
  Parameters:
     * **query** (*Tensor*) -- Query embeddings of shape (L, E_q)
       for unbatched input, (L, N, E_q) when "batch_first=False"
       or (N, L, E_q) when "batch_first=True", where L is the
       target sequence length, N is the batch size, and E_q is the
       query embedding dimension "embed_dim". Queries are compared
       against key-value pairs to produce the output. See
       "Attention Is All You Need" for more details.

     * **key** (*Tensor*) -- Key embeddings of shape (S, E_k) for
       unbatched input, (S, N, E_k) when "batch_first=False" or
       (N, S, E_k) when "batch_first=True", where S is the source
       sequence length, N is the batch size, and E_k is the key
       embedding dimension "kdim". See "Attention Is All You Need"
       for more details.
