o
    ¡¿¯i#  ã                   @   s   d Z dd„ ZdS )z'Attention masking module for Masked LM.c                 C   sD   | |k  d¡}| d¡}| dd¡ dd|¡}| d|d¡|@ }|S )a  Create attention mask to avoid attending on padding tokens.

    :param torch.Tensor ys_pad: batch of padded target sequences (B, Lmax)
    :param int ignore_id: index of padding
    :param torch.dtype dtype: result dtype
    :rtype: torch.Tensor (B, Lmax, Lmax)
    éþÿÿÿéÿÿÿÿé   é   )Ú	unsqueezeÚsizeÚ	transposeÚrepeat)Ú	ys_in_padÚ	ignore_idÚys_maskÚymaxÚys_mask_tmp© r   ú\/home/ubuntu/.local/lib/python3.10/site-packages/espnet/nets/pytorch_backend/maskctc/mask.pyÚsquare_mask   s
   
r   N)Ú__doc__r   r   r   r   r   Ú<module>   s   