create_mask

paddle.fluid.contrib.sparsity.utils. create_mask ( tensor, func_name=MaskAlgo.MASK_1D, n=2, m=4 ) [source]

Create n:m sparse pattern mask of the input tensor via function given by func_name. Currently only support tensor with dimension less than or equal to 4.

Parameters
  • tensor (nparray) – The input tensor.

  • func_name (MaskAlgo, optional) – The function name to generate spase mask. Default is MaskAlgo.MASK_1D. All options please refer to MaskAlgo.

  • n (int, optional) – n of n:m sparse pattern. Default is 2.

  • m (int, optional) – m of n:m sparse pattern. Default is 4.

Returns

The n:m sparse mask of tensor generated by func_name.

Return type

nparray

Examples

import numpy as np
import paddle.fluid.contrib.sparsity as sparsity

tensor = np.array([[2, 8, 9, 9],
                   [9, 1, 3, 9],
                   [5, 6, 3, 9],
                   [2, 4, 6, 9]])
mask_1d = sparsity.create_mask(tensor, func_name=sparsity.MaskAlgo.MASK_1D)
# nparray([[0 0 1 1],
#          [1 0 0 1],
#          [0 1 0 1],
#          [0 0 1 1]])
mask_2d = sparsity.create_mask(tensor, func_name=sparsity.MaskAlgo.MASK_2D_BEST)
# nparray([[0 1 1 0],
#          [1 0 0 1],
#          [1 1 0 0],
#          [0 0 1 1]])