mindspore.ops.Randperm

class mindspore.ops.Randperm(max_length=1, pad=- 1, dtype=mstype.int32)[源代码]

生成从0到n-1不重复的n个随机样本。如果 max_length > n,则末尾的 max_length-n 个元素使用 pad 填充。

参数:
  • max_length (int) - 取样数量,必须大于0。默认值: 1

  • pad (int) - 填充值。默认值: -1

  • dtype (mindspore.dtype) - 输出的数据类型。默认值: mstype.int32

输入:
  • n (Tensor) - shape为 \((1,)\) 的输入Tensor,其数据类型为int32或int64,须在[0, max_length]内取值。

输出:
  • output (Tensor) - shape: (max_length,),数据类型为 dtype

异常:
  • TypeError - max_lengthpad 不是int类型。

  • TypeError - n 不是Tensor。

  • TypeError - n 包含非int元素。

  • TypeError - n 包含负数。

  • TypeError - dtype 不被支持。

  • ValueError - n 超出 dtype 的有效范围。

  • ValueError - n 大于 max_length

支持平台:

Ascend GPU

样例:

>>> import mindspore
>>> from mindspore import Tensor, ops
>>> # The result of every execution is different because this operator will generate n random samples.
>>> randperm = ops.Randperm(max_length=30, pad=-1)
>>> n = Tensor([20], dtype=mindspore.int32)
>>> output = randperm(n)
>>> print(output)
[15 6 11 19 14 16 9 5 13 18 4 10 8 0 17 2 1 12 3 7
 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1]