randperm_cn.rst 2.1 KB
Newer Older
C
cc 已提交
1 2
.. _cn_api_tensor_random_randperm:

T
tianshuo78520a 已提交
3 4
randperm
-------------------------------
C
cc 已提交
5

6
.. py:function:: paddle.tensor.random.randperm(n, out=None, dtype="int64", device=None, stop_gradient=True, seed=0)
C
cc 已提交
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

该OP返回一个数值在0到n-1、顺序随机的整数排列。

参数: 
  - **n** (int): 整数排列的上限,应该大于0。 
  - **out** (Variable, optional): 可选的输出变量,如果不为 `None` ,返回的整数排列保存在该变量中,默认是 `None` 。
  - **dtype** (np.dtype|core.VarDesc.VarType|str, optional): 整数排列的数据类型,支持 `int64` 和 `int32` ,默认是 `int64` 。
  - **device** (str, optional): 指定整数排列所在的设备内存。设置为 `cpu` 则保存在 `cpu` 内存中,设置为 `gpu` ,则保存在 `gpu` 内存中,设置为 `None` 则保存在运行的设备内存中。默认是 `None` 。
  - **stop_gradient** (bool, optional): 返回的整数排列是否记录并更新梯度,默认是 `True` 。 
  - **seed** (int, optional): 设置随机种子。`seed` 等于0时,每次返回不同的整数排列;`seed` 不等于0时,相同的 `seed` 返回相同的整数排列。

返回:  一个数值在0到n-1、顺序随机的整数排列。

返回类型: Variable

**代码示例**:

..  code-block:: python

    import paddle
    import paddle.fluid as fluid
    import numpy as np

    # Note that, the random permutation returned by randperm depends
    # the random seed in computer, so the output in the next example
    # will be change.
    with fluid.dygraph.guard():
34
        out_1 = paddle.randperm(6)
C
cc 已提交
35 36 37 38
        print(out_1.numpy())  # Random permutation, for example [2 4 5 0 3 1]

        out_2 = fluid.dygraph.to_variable(
				np.array([0, 1, 2, 3])).astype(np.int64)
39
        paddle.randperm(6, out_2)
C
cc 已提交
40 41
        print(out_2.numpy())  # Random permutation, for example [5 0 2 4 1 3]

42
        out_3 = paddle.randperm(6, dtype="int32", device="cpu")
C
cc 已提交
43 44
        print(out_3.numpy())  # Random permutation, for example [3 1 4 2 5 0]

45
        out_4 = paddle.randperm(6, device="cpu", stop_gradient=True)
C
cc 已提交
46
        print(out_4.numpy())  # Random permutation, for example [3 1 5 2 0 4]