ignored while the position with the value of "False" will
           be unchanged.
     * attn_mask: 2D mask (L, S) where L is the target sequence
       length, S is the source sequence length. 3D mask
       (N*num_heads, L, S) where N is the batch size, L is the
       target sequence length, S is the source sequence length.
       attn_mask ensure that position i is allowed to attend the
       unmasked positions. If a ByteTensor is provided, the non-
       zero positions are not allowed to attend while the zero
       positions will be unchanged. If a BoolTensor is provided,
       positions with "True" is not allowed to attend while
       "False" values will be unchanged. If a FloatTensor is
       provided, it will be added to the attention weight.

     * is_causal: If specified, applies a causal mask as attention
       mask. Mutually exclusive with providing attn_mask. Default:
       "False".
