mindspore.ops.sequence_mask
- mindspore.ops.sequence_mask(lengths, maxlen=None)[source]
Returns a mask tensor representing the first N positions of each cell.
If lengths has shape \((d_1, d_2, ..., d_n)\), then the resulting tensor mask has type and shape \((d_1, d_2, ..., d_n, maxlen)\), with mask \([i_1, i_2, ..., i_n, j] = (j < lengths[i_1, i_2, ..., i_n])\).
- Parameters
lengths (Tensor) – Tensor to calculate the mask for. All values in this tensor should be less than or equal to maxlen. Values greater than maxlen will be treated as maxlen.
maxlen (int) – size of the last dimension of returned tensor. Must be positive and same type as elements in lengths. Default is
None
.
- Returns
One mask tensor of shape lengths.shape + (maxlen,) .
- Raises
- Supported Platforms:
GPU
CPU
Examples
>>> import numpy as np >>> from mindspore import Tensor, ops >>> # case 1: When maxlen is assigned >>> x = Tensor(np.array([1, 2, 3, 4])) >>> output = ops.sequence_mask(x, 5) >>> print(output) [[ True False False False False] [ True True False False False] [ True True True False False] [ True True True True False]] >>> # case 2: When there is 0 in x >>> x = Tensor(np.array([[1, 3], [2, 0]])) >>> output = ops.sequence_mask(x, 5) >>> print(output) [[[ True False False False False] [ True True True False False]] [[ True True False False False] [False False False False False]]] >>> # case 3: when the maxlen is not assigned >>> x = Tensor(np.array([[1, 3], [2, 4]])) >>> output = ops.sequence_mask(x) >>> print(output) [[[ True False False False ] [ True True True False ]] [[ True True False False ] [ True True True True ]]]