megengine.random.permutation

permutation(n, *, dtype='int32')
随机打乱一个序列,或者返回一个打乱后的范围。

如果 n 是一个张量,只会沿着第一个轴打乱

参数
  • n (Union[int, Tensor]) – 如果 n 是一个整数,会返回 0 到 n-1 的一个随机张量。如果 n 是一个张量会返回一个新的打乱后的张量

  • dtype (str) – 当 n 为整数时返回张量设置的类型。支持 int32,int16 和 float32,默认为 int32

返回

The output tensor.

实际案例

>>> import numpy as np
>>> import megengine.random as rand
>>> x = rand.permutation(10, dtype="int32")
>>> x.numpy()   
array([8, 4, 0, 3, 5, 6, 2, 1, 7, 9], dtype=int32)
>>> x = rand.permutation(10, dtype="float32")
>>> x.numpy()   
array([1., 3., 0., 2., 4., 8., 7., 9., 6., 5.], dtype=float32)
>>> x = mge.tensor(np.arange(18)).reshape(6,3)
>>> x = rand.permutation(x)
>>> x.numpy()   
array([[15, 16, 17],
       [ 6,  7,  8],
       [ 0,  1,  2],
       [ 3,  4,  5],
       [12, 13, 14],
       [ 9, 10, 11]], dtype=int32)