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
None
.
- Returns
Tensor, shape is lengths.shape + (maxlen,) .
- Supported Platforms:
GPU
CPU
Examples
>>> import mindspore >>> # case 1: When maxlen is assigned >>> x = mindspore.tensor([1, 2, 3, 4]) >>> output = mindspore.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 = mindspore.tensor([[1, 3], [2, 0]]) >>> output = mindspore.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 = mindspore.tensor([[1, 3], [2, 4]]) >>> output = mindspore.ops.sequence_mask(x) >>> print(output) [[[ True False False False ] [ True True True False ]] [[ True True False False ] [ True True True True ]]]