From 6b6b11c8c7420013c055dc56b012de533478033d Mon Sep 17 00:00:00 2001 From: Qinghe JING Date: Thu, 7 May 2020 18:09:07 +0800 Subject: [PATCH] add bmm arange api_doc test=develop (#1992) * add bmm arange api_doc test=develop --- doc/fluid/api_cn/tensor_cn/arange_cn.rst | 28 ++++++++++++- doc/fluid/api_cn/tensor_cn/bmm_cn.rst | 45 ++++++++++++++++++++- doc/fluid/api_cn/tensor_cn/gather_cn.rst | 34 +++++++++++++++- doc/fluid/api_cn/tensor_cn/split_cn.rst | 33 ++++++++++++++- doc/fluid/api_cn/tensor_cn/squeeze_cn.rst | 30 +++++++++++++- doc/fluid/api_cn/tensor_cn/stack_cn.rst | 35 +++++++++++++++- doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst | 30 +++++++++++++- 7 files changed, 228 insertions(+), 7 deletions(-) diff --git a/doc/fluid/api_cn/tensor_cn/arange_cn.rst b/doc/fluid/api_cn/tensor_cn/arange_cn.rst index 209358ff2..e79a1fa74 100644 --- a/doc/fluid/api_cn/tensor_cn/arange_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/arange_cn.rst @@ -1,3 +1,29 @@ +.. _cn_api_paddle_tensor_arange + arange ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.arange(start, end, step=1, dtype=None, name=None) + +该API根据step均匀分隔给定数值区间[start, end),并返回该分隔结果。 + +**参数**: + - **start** (float32 | float64 | int32 | int64 | Variable) - 区间起点,且区间包括此值, 当类型是Variable时,是shape为 [1] 的1-D Tensor。 + - **end** (float32 | float64 | int32 | int64 | Variable) - 区间终点,通常区间不包括此值。但当step不是整数,且浮点数取整会影响输出的长度时例外。 + - **step** (float32 | float64 | int32 | int64 | Variable) - 均匀分割的步长。 + - **dtype** (str | core.VarDesc.VarType) - 输出Tensor的数据类型,可为 'float32', 'float64', 'int32', 'int64' 。 + +**返回**:均匀分割给定数值区间后得到的1-D Tensor, 数据类型为输入 dtype 。 + +**返回类型**:Variable + +**代码示例** + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + with fluid.dygraph.guard(): + x = paddle.arange(0, 6, 2) + # x: [0, 2, 4] + # x dtype: float32 diff --git a/doc/fluid/api_cn/tensor_cn/bmm_cn.rst b/doc/fluid/api_cn/tensor_cn/bmm_cn.rst index 893a4d83e..330d70956 100644 --- a/doc/fluid/api_cn/tensor_cn/bmm_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/bmm_cn.rst @@ -1,3 +1,46 @@ +.. _cn_api_paddle_tensor_bmm: + bmm ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.bmm(x, y, name=None): + +对输入x及输入y进行矩阵相乘。 + +两个输入的维度必须等于3,并且矩阵x和矩阵y的第一维必须相等 + +同时矩阵x的第二维必须等于矩阵y的第三维 + +例如:若x和y分别为(b, m, k)和 (b, k, n)的矩阵,则函数的输出为一个(b, m, n)的矩阵 + +**参数**: + + -**x** (Variable) : 输入变量,类型为 Tensor 或 LoDTensor。 + -**y** (Variable) : 输入变量,类型为 Tensor 或 LoDTensor。 + -**name** (str|None) : 该层名称(可选),如果设置为空,则自动为该层命名。 + +**返回**: + - Variable (Tensor / LoDTensor),矩阵相乘后的结果。 + +**返回类型**: + - Variable(变量)。 + + +**示例**: + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + # size input1: (2, 2, 3) and input2: (2, 3, 2) + input1 = np.array([[[1.0, 1.0, 1.0],[2.0, 2.0, 2.0]],[[3.0, 3.0, 3.0],[4.0, 4.0, 4.0]]]) + input2 = np.array([[[1.0, 1.0],[2.0, 2.0],[3.0, 3.0]],[[4.0, 4.0],[5.0, 5.0],[6.0, 6.0]]]) + with fluid.dygraph.guard(): + x = fluid.dygraph.to_variable(input1) + y = fluid.dygraph.to_variable(input2) + out = paddle.bmm(x, y) + #output size: (2, 2, 2) + #output value: + #[[[6.0, 6.0],[12.0, 12.0]],[[45.0, 45.0],[60.0, 60.0]]] + out_np = out.numpy() + diff --git a/doc/fluid/api_cn/tensor_cn/gather_cn.rst b/doc/fluid/api_cn/tensor_cn/gather_cn.rst index bdfa0531c..430dd7ac8 100644 --- a/doc/fluid/api_cn/tensor_cn/gather_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/gather_cn.rst @@ -1,3 +1,35 @@ +.. _cn_api_paddle_tensor_gather gather ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.gather(input, index, overwrite=True) + +根据索引 index 获取输入(input)的最外层维度的条目,并将它们拼接在一起。 + +.. math:: + + Out=X[Index] + +**参数**: + - **input** (Variable) - 输入, 秩 ``rank >= 1`` , 支持的数据类型包括 int32、int64、float32、float64 和 uint8 (CPU)、float16(GPU) 。 + - **index** (Variable) - 索引,秩 ``rank = 1``, 数据类型为 int32 或 int64。 + - **overwrite** (bool) - 具有相同索引时在反向更新梯度的模式。如果为 ``True`` ,则使用覆盖模式更新相同索引的梯度;如果为 ``False`` ,则使用累积模式更新相同索引的梯度。默认值为 ``True`` 。 + +**返回**:和输入的秩相同的输出张量。 + +**返回类型**:Variable + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + import numpy as np + with fluid.dygraph.guard(): + input_1 = np.array([[1,2,3],[4,5,6],[7,8,9]]) + index_1 = np.array([0,1]) + input = fluid.dygraph.to_variable(input_1) + index = fluid.dygraph.to_variable(index_1) + output = paddle.fluid.layers.gather(input, index) + # expected output: [[1, 2, 3],[4, 5, 6]] diff --git a/doc/fluid/api_cn/tensor_cn/split_cn.rst b/doc/fluid/api_cn/tensor_cn/split_cn.rst index 9aa8dc358..a22576603 100644 --- a/doc/fluid/api_cn/tensor_cn/split_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/split_cn.rst @@ -1,3 +1,34 @@ +.. _cn_api_paddle_tensor_split split ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.split(input, num_or_sections, dim=-1, name=None) + +该OP将输入Tensor分割成多个子Tensor。 + +**参数**: + - **input** (Variable) - 输入变量,数据类型为float32,float64,int32,int64的多维Tensor或者LoDTensor。 + - **num_or_sections** (int|list|tuple) - 如果 num_or_sections 是一个整数,则表示Tensor平均划分为相同大小子Tensor的数量。如果 num_or_sections 是一个list或tuple,那么它的长度代表子Tensor的数量,它的元素可以是整数或者形状为[1]的Tensor,依次代表子Tensor需要分割成的维度的大小。list或tuple的长度不能超过输入Tensor待分割的维度的大小。在list或tuple中,至多有一个元素值为-1,表示该值是由input的维度和其他num_or_sections中元素推断出来的。例如对一个维度为[4,6,6]Tensor的第三维进行分割时,指定num_or_sections=[2,-1,1],输出的三个Tensor维度分别为:[4,6,2],[4,6,3],[4,6,1]。 + - **dim** (int|Variable,可选) - 整数或者形状为[1]的Tensor,数据类型为int32或int64。表示需要分割的维度。如果dim < 0,则划分的维度为rank(input) + dim。默认值为-1。 + - **name** (str,可选) - 一般无需设置,默认值为None。 + +**返回**:分割后的Tensor列表。 + +**返回类型**:列表(Variable(Tensor|LoDTensor)),数据类型为int32,int64,float32,float64。 + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + import numpy as np + with fluid.dygraph.guard(): + input_1 = np.random.random([4, 6, 6]).astype("int32") + # input is a variable which shape is [4, 6, 6] + input = fluid.dygraph.to_variable(input_1) + + x0, x1, x2 = paddle.split(input, num_or_sections= 3, dim=1) + # x0.shape [4, 2, 6] + # x1.shape [4, 2, 6] + # x2.shape [4, 2, 6] diff --git a/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst b/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst index 28808c0a6..795cf298a 100644 --- a/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst @@ -1,3 +1,31 @@ +.. _cn_api_paddle_tensor_squeeze squeeze ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.squeeze(input, zxes, name=None) + +该OP会根据axes压缩输入Tensor的维度。如果指定了axes,则会删除axes中指定的维度,axes指定的维度要等于1。如果没有指定axes,那么所有等于1的维度都会被删除。 + +**参数**: + - **input** (Variable) - 输入任意维度的Tensor。 支持的数据类型:float32,float64,int8,int32,int64。 + - **axes** (list) - 输入一个或一列整数,代表要压缩的轴。axes的范围: [−rank(input),rank(input))] 。 axes为负数时, axes=axes+rank(input) 。 + - **name** (str,可选) - 一般无需设置,默认值为None。 + +**返回**:返回对维度进行压缩后的Tensor。数据类型与输入Tensor一致。 + +**返回类型**:Variable + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + import numpy as np + with fluid.dygraph.guard(): + input_1 = np.random.random([5, 1, 10]).astype("int32") + # input is a variable which shape is [5, 1, 10] + input = fluid.dygraph.to_variable(input_1) + + output = paddle.fluid.layers.squeeze(input, axes=[1]) + # output.shape [5, 10] diff --git a/doc/fluid/api_cn/tensor_cn/stack_cn.rst b/doc/fluid/api_cn/tensor_cn/stack_cn.rst index 71df351f7..0351b65a4 100644 --- a/doc/fluid/api_cn/tensor_cn/stack_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/stack_cn.rst @@ -1,3 +1,36 @@ +.. _cn_api_paddle_tensor_arange stack ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.stack(x, axis=0) + +该OP沿 axis 轴对输入 x 进行堆叠操作。 + +**参数**: + - **x** (Variable|list(Variable)) – 输入 x 可以是单个Tensor,或是多个Tensor组成的列表。如果 x 是一个列表,那么这些Tensor的维度必须相同。 假设输入是N维Tensor [d0,d1,...,dn−1],则输出变量的维度为N+1维 [d0,d1,...daxis−1,len(x),daxis...,dn−1] 。支持的数据类型: float32,float64,int32,int64。 + + - **axis** (int, 可选) – 指定对输入Tensor进行堆叠运算的轴,有效 axis 的范围是: [−(R+1),R+1)],R是输入中第一个Tensor的rank。如果 axis < 0,则 axis=axis+rank(x[0])+1 。axis默认值为0。 + +**返回**:堆叠运算后的Tensor,数据类型与输入Tensor相同。输出维度等于 rank(x[0])+1 维。 + +**返回类型**:Variable + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + import numpy as np + data1 = np.array([[1.0, 2.0,3.0]]) + data2 = np.array([[3.0, 4.0, 5.0]]) + data3 = np.array([[5.0, 6.0,7.0]]) + with fluid.dygraph.guard(): + x1 = fluid.dygraph.to_variable(data1) + x2 = fluid.dygraph.to_variable(data2) + x3 = fluid.dygraph.to_variable(data3) + result = paddle.stack([x1, x2, x3], axis=2) + # result shape: [3, 1, 2] + # result value: [[[1.0, 2.0]], + # [[3.0, 4.0]], + # [[5.0, 6.0]]] diff --git a/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst b/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst index 104901e78..6b1face48 100644 --- a/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst @@ -1,3 +1,31 @@ +.. _cn_api_paddle_tensor_unsqueeze unsqueeze ------------------------------- -**版本升级,文档正在开发中** + +.. py:function:: paddle.tensor.unsqueeze(input, axes, name=None) + +该OP向输入(input)的shape中一个或多个位置(axes)插入维度。 + +**参数**: + - **input** (Variable)- 多维 Tensor,数据类型为 float32, float64, int8, int32,或 int64。 + - **axes** (int|list|tuple|Variable) - 表示要插入维度的位置。数据类型是 int32 。如果 axes 的类型是 list 或 tuple,它的元素可以是整数或者形状为[1]的 Tensor 。如果 axes 的类型是 Variable,则是1-D Tensor。 + - **name** (str,可选)- 一般无需设置。默认值: None。 + +**返回**:扩展维度后的多维Tensor + +**返回类型**:Variable + +**代码示例**: + +.. code-block:: python + + import paddle + import paddle.fluid as fluid + import numpy as np + with fluid.dygraph.guard(): + input_1 = np.random.random([5, 10]).astype("int32") + # input is a variable which shape is [5, 1, 10] + input = fluid.dygraph.to_variable(input_1) + + output = paddle.unsqueeze(input, axes=[1]) + # output.shape [5, 1, 10] -- GitLab