Source code for espnet.nets.pytorch_backend.transformer.mask
import torch
[docs]def subsequent_mask(size, device="cpu", dtype=torch.uint8):
"""Create mask for subsequent steps (1, size, size)
:param int size: size of mask
:param str device: "cpu" or "cuda" or torch.Tensor.device
:param torch.dtype dtype: result dtype
:rtype: torch.Tensor
>>> subsequent_mask(3)
[[1, 0, 0],
[1, 1, 0],
[1, 1, 1]]
"""
ret = torch.ones(size, size, device=device, dtype=dtype)
return torch.tril(ret, out=ret)