From 6a0216cda9e177fef313a7c813d391d781d2ce2f Mon Sep 17 00:00:00 2001 From: wawltor Date: Thu, 30 Jul 2020 00:14:34 +0800 Subject: [PATCH] Fix the argsort and sort doc for the paddle api2.0 (#2282) Fix the argsort, sort the api doc for paddle2.0 --- doc/fluid/api/paddle/argsort.rst | 2 +- doc/fluid/api/paddle/sort.rst | 2 +- doc/fluid/api/tensor/argsort.rst | 2 +- doc/fluid/api/tensor/sort.rst | 2 +- doc/fluid/api_cn/paddle_cn/argsort_cn.rst | 2 +- doc/fluid/api_cn/paddle_cn/sort_cn.rst | 2 +- doc/fluid/api_cn/tensor_cn/argsort_cn.rst | 58 +++++++++++++- doc/fluid/api_cn/tensor_cn/sort_cn.rst | 98 +++++++++++------------ 8 files changed, 110 insertions(+), 58 deletions(-) diff --git a/doc/fluid/api/paddle/argsort.rst b/doc/fluid/api/paddle/argsort.rst index 43be9de95..716f7e793 100644 --- a/doc/fluid/api/paddle/argsort.rst +++ b/doc/fluid/api/paddle/argsort.rst @@ -2,6 +2,6 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.argsort diff --git a/doc/fluid/api/paddle/sort.rst b/doc/fluid/api/paddle/sort.rst index e22a93a5d..5f87357cc 100644 --- a/doc/fluid/api/paddle/sort.rst +++ b/doc/fluid/api/paddle/sort.rst @@ -2,6 +2,6 @@ sort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.sort diff --git a/doc/fluid/api/tensor/argsort.rst b/doc/fluid/api/tensor/argsort.rst index 927d474d1..216877778 100644 --- a/doc/fluid/api/tensor/argsort.rst +++ b/doc/fluid/api/tensor/argsort.rst @@ -2,6 +2,6 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.argsort diff --git a/doc/fluid/api/tensor/sort.rst b/doc/fluid/api/tensor/sort.rst index 14cc6f45b..21da4ab43 100644 --- a/doc/fluid/api/tensor/sort.rst +++ b/doc/fluid/api/tensor/sort.rst @@ -2,6 +2,6 @@ sort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.sort diff --git a/doc/fluid/api_cn/paddle_cn/argsort_cn.rst b/doc/fluid/api_cn/paddle_cn/argsort_cn.rst index 26f231fcc..e9f128a9a 100644 --- a/doc/fluid/api_cn/paddle_cn/argsort_cn.rst +++ b/doc/fluid/api_cn/paddle_cn/argsort_cn.rst @@ -2,6 +2,6 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.argsort diff --git a/doc/fluid/api_cn/paddle_cn/sort_cn.rst b/doc/fluid/api_cn/paddle_cn/sort_cn.rst index 69444809a..d4ee20b7e 100644 --- a/doc/fluid/api_cn/paddle_cn/sort_cn.rst +++ b/doc/fluid/api_cn/paddle_cn/sort_cn.rst @@ -2,6 +2,6 @@ sort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +:doc_source: paddle.tensor.sort diff --git a/doc/fluid/api_cn/tensor_cn/argsort_cn.rst b/doc/fluid/api_cn/tensor_cn/argsort_cn.rst index ecf72edcb..3e1c2c49b 100644 --- a/doc/fluid/api_cn/tensor_cn/argsort_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/argsort_cn.rst @@ -2,6 +2,62 @@ argsort ------------------------------- -:doc_source: paddle.fluid.layers.argsort +.. py:function:: paddle.argsort(x, axis=-1, descending=False, name=None) +:alias_main: paddle.argsort +:alias: paddle.argsort,paddle.tensor.argsort,paddle.tensor.search.argsort + +对输入变量沿给定轴进行排序,输出排序好的数据的相应索引,其维度和输入相同。**默认升序排列,如果需要降序排列设置** ``descending=True`` 。 + + +参数: + - **x** (Tensor) - 输入的多维 ``Tensor`` ,支持的数据类型:float32、float64、int16、int32、int64、uint8。 + - **axis** (int,可选) - 指定对输入Tensor进行运算的轴, ``axis`` 的有效范围是[-R, R),R是输入 ``x`` 的Rank, ``axis`` 为负时与 ``axis`` +R 等价。默认值为0。 + - **descending** (bool,可选) - 指定算法排序的方向。如果设置为True,算法按照降序排序。如果设置为False或者不设置,按照升序排序。默认值为False。 + - **name** (str,可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。 + +返回:排序后索引信息(与 ``x`` 维度信息一致),数据类型为int64。 + +返回类型:Tensor + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.imperative as imperative + import numpy as np + + paddle.enable_imperative() + input_array = np.array([[[5,8,9,5], + [0,0,1,7], + [6,9,2,4]], + [[5,2,4,2], + [4,7,7,9], + [1,7,0,6]]]).astype(np.float32) + x = imperative.to_variable(input_array) + out1 = paddle.argsort(x=x, axis=-1) + out2 = paddle.argsort(x=x, axis=0) + out3 = paddle.argsort(x=x, axis=1) + print(out1.numpy()) + #[[[0 3 1 2] + # [0 1 2 3] + # [2 3 0 1]] + # [[1 3 2 0] + # [0 1 2 3] + # [2 0 3 1]]] + print(out2.numpy()) + #[[[0 1 1 1] + # [0 0 0 0] + # [1 1 1 0]] + # [[1 0 0 0] + # [1 1 1 1] + # [0 0 0 1]]] + print(out3.numpy()) + #[[[1 1 1 2] + # [0 0 2 0] + # [2 2 0 1]] + # [[2 0 2 0] + # [1 1 0 2] + # [0 2 1 1]]] diff --git a/doc/fluid/api_cn/tensor_cn/sort_cn.rst b/doc/fluid/api_cn/tensor_cn/sort_cn.rst index 9f627143f..f57b1e438 100644 --- a/doc/fluid/api_cn/tensor_cn/sort_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/sort_cn.rst @@ -3,73 +3,69 @@ sort ------------------------------- -.. py:function:: paddle.sort(input, axis=-1, descending=False, out=None, name=None) +.. py:function:: paddle.sort(x, axis=-1, descending=False, name=None) :alias_main: paddle.sort :alias: paddle.sort,paddle.tensor.sort,paddle.tensor.search.sort -:update_api: paddle.fluid.layers.argsort - 对输入变量沿给定轴进行排序,输出排序好的数据和相应的索引,其维度和输入相同。**默认升序排列,如果需要降序排列设置** ``descending=True`` 。 参数: - - **input** (Variable) - 输入的多维 ``Tensor`` ,支持的数据类型:float32、float64、int16、int32、int64、uint8。 + - **x** (Tensor) - 输入的多维 ``Tensor`` ,支持的数据类型:float32、float64、int16、int32、int64、uint8。 - **axis** (int,可选) - 指定对输入Tensor进行运算的轴, ``axis`` 的有效范围是[-R, R),R是输入 ``x`` 的Rank, ``axis`` 为负时与 ``axis`` +R 等价。默认值为0。 - **descending** (bool,可选) - 指定算法排序的方向。如果设置为True,算法按照降序排序。如果设置为False或者不设置,按照升序排序。默认值为False。 - - **out** (Variable, 可选) – 指定存储运算结果的Tensor(与 ``input`` 维度相同、数据类型相同)。如果设置为None或者不设置,将创建新的Tensor存储运算结果,默认值为None。 - **name** (str,可选) – 具体用法请参见 :ref:`api_guide_Name` ,一般无需设置,默认值为None。 -返回:一组已排序的输出(与 ``input`` 维度相同、数据类型相同)和索引(数据类型为int64)。 +返回:一组已排序的输出(与 ``x`` 维度相同、数据类型相同)和索引(数据类型为int64)。 -返回类型:tuple[Variable] +返回类型:tuple[Tensor] **代码示例**: .. code-block:: python - import paddle - import paddle.fluid as fluid - import numpy as np - - in1 = np.array([[[5,8,9,5], - [0,0,1,7], - [6,9,2,4]], - [[5,2,4,2], - [4,7,7,9], - [1,7,0,6]]]).astype(np.float32) - with fluid.dygraph.guard(): - x = fluid.dygraph.to_variable(in1) - out1 = paddle.sort(input=x, axis=-1) # same as axis==2 - out2 = paddle.sort(input=x, axis=0) - out3 = paddle.sort(input=x, axis=1) - print(out1[0].numpy()) - # [[[5. 5. 8. 9.] - # [0. 0. 1. 7.] - # [2. 4. 6. 9.]] - # [[2. 2. 4. 5.] - # [4. 7. 7. 9.] - # [0. 1. 6. 7.]]] - print(out1[1].numpy()) - # [[[0 3 1 2] - # [0 1 2 3] - # [2 3 0 1]] - # [[1 3 2 0] - # [0 1 2 3] - # [2 0 3 1]]] - print(out2[0].numpy()) - # [[[5. 2. 4. 2.] - # [0. 0. 1. 7.] - # [1. 7. 0. 4.]] - # [[5. 8. 9. 5.] - # [4. 7. 7. 9.] - # [6. 9. 2. 6.]]] - print(out3[0].numpy()) - # [[[0. 0. 1. 4.] - # [5. 8. 2. 5.] - # [6. 9. 9. 7.]] - # [[1. 2. 0. 2.] - # [4. 7. 4. 6.] - # [5. 7. 7. 9.]]] - + import paddle + import paddle.imperative as imperative + import numpy as np + + paddle.enable_imperative() + input_array = np.array([[[5,8,9,5], + [0,0,1,7], + [6,9,2,4]], + [[5,2,4,2], + [4,7,7,9], + [1,7,0,6]]]).astype(np.float32) + x = imperative.to_variable(input_array) + out1 = paddle.sort(x=x, axis=-1) + out2 = paddle.sort(x=x, axis=0) + out3 = paddle.sort(x=x, axis=1) + print(out1[0].numpy()) + #[[[5. 5. 8. 9.] + # [0. 0. 1. 7.] + # [2. 4. 6. 9.]] + # [[2. 2. 4. 5.] + # [4. 7. 7. 9.] + # [0. 1. 6. 7.]]] + print(out1[1].numpy()) + #[[[0 3 1 2] + # [0 1 2 3] + # [2 3 0 1]] + # [[1 3 2 0] + # [0 1 2 3] + # [2 0 3 1]]] + print(out2[0].numpy()) + #[[[5. 2. 4. 2.] + # [0. 0. 1. 7.] + # [1. 7. 0. 4.]] + # [[5. 8. 9. 5.] + # [4. 7. 7. 9.] + # [6. 9. 2. 6.]]] + print(out3[0].numpy()) + #[[[0. 0. 1. 4.] + # [5. 8. 2. 5.] + # [6. 9. 9. 7.]] + # [[1. 2. 0. 2.] + # [4. 7. 4. 6.] + # [5. 7. 7. 9.]]] -- GitLab