(required).
     * **tgt** (*Tensor*) -- the sequence to the decoder
       (required).

     * **src_mask** (*Optional**[**Tensor**]*) -- the additive
       mask for the src sequence (optional).

     * **tgt_mask** (*Optional**[**Tensor**]*) -- the additive
       mask for the tgt sequence (optional).

     * **memory_mask** (*Optional**[**Tensor**]*) -- the additive
       mask for the encoder output (optional).

     * **src_key_padding_mask** (*Optional**[**Tensor**]*) -- the
       ByteTensor mask for src keys per batch (optional).

     * **tgt_key_padding_mask** (*Optional**[**Tensor**]*) -- the
       ByteTensor mask for tgt keys per batch (optional).

     * **memory_key_padding_mask** (*Optional**[**Tensor**]*) --
       the ByteTensor mask for memory keys per batch (optional).

  Return type:
     *Tensor*

  Shape:
     * src: (S, E) for unbatched input, (S, N, E) if
