mindspore.ops.sequence_mask
- mindspore.ops.sequence_mask(lengths, maxlen=None, prim_name="sequence_mask")[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 dtype 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])
- Inputs:
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. Must be type int32 or int64.
maxlen (int) - size of the last dimension of returned tensor. Must be positive and same type as elements in lengths. Default is None.
- Outputs:
One mask tensor of shape lengths.shape + (maxlen,).
- Raises
- Supported Platforms:
GPU
Examples
>>> # 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 ]]]