From 48f71778e16c0a39580f9e4e299b7f5a9e5e582d Mon Sep 17 00:00:00 2001 From: liym27 <33742067+liym27@users.noreply.github.com> Date: Wed, 25 Sep 2019 17:52:20 +0800 Subject: [PATCH] Fix cn doc 4 api (#1220) * add reference link of elementwise_pow. test=document_preview * fix Chinese doc of four API. test=develop, test=document_preview * fix optional argument. test=develop, test=document_preview * fix cn doc accoring to reviews. test=develop, test=document_preview --- doc/fluid/api_cn/layers_cn/expand_cn.rst | 20 +++++++---- doc/fluid/api_cn/layers_cn/pow_cn.rst | 16 +++++---- doc/fluid/api_cn/layers_cn/reshape_cn.rst | 44 +++++++++++++---------- doc/fluid/api_cn/layers_cn/slice_cn.rst | 27 +++++++------- 4 files changed, 61 insertions(+), 46 deletions(-) diff --git a/doc/fluid/api_cn/layers_cn/expand_cn.rst b/doc/fluid/api_cn/layers_cn/expand_cn.rst index bae748a9b..573cc4912 100644 --- a/doc/fluid/api_cn/layers_cn/expand_cn.rst +++ b/doc/fluid/api_cn/layers_cn/expand_cn.rst @@ -5,11 +5,11 @@ expand .. py:function:: paddle.fluid.layers.expand(x, expand_times, name=None) -expand运算会按给定的次数对输入各维度进行复制(tile)运算。 您应该通过提供属性 ``expand_times`` 来为每个维度设置次数。 X的秩应该在[1,6]中。请注意, ``expand_times`` 的大小必须与X的秩相同。以下是一个用例: +该OP会根据参数 ``expand_times`` 对输入 ``x`` 的各维度进行复制。通过参数 ``expand_times`` 来为 ``x`` 的每个维度设置复制次数。 ``x`` 的秩应小于等于6。注意, ``expand_times`` 的大小必须与 ``x`` 的秩相同。以下是一个用例: :: - 输入(X) 是一个形状为[2, 3, 1]的三维张量(Tensor): + 输入(x) 是一个形状为[2, 3, 1]的 3-D Tensor : [ [[1], [2], [3]], @@ -18,7 +18,7 @@ expand运算会按给定的次数对输入各维度进行复制(tile)运算 属性(expand_times): [1, 2, 2] - 输出(Out) 是一个形状为[2, 6, 2]的三维张量(Tensor): + 输出(out) 是一个形状为[2, 6, 2]的 3-D Tensor: [ [[1, 1], [2, 2], [3, 3], [1, 1], [2, 2], [3, 3]], @@ -26,12 +26,18 @@ expand运算会按给定的次数对输入各维度进行复制(tile)运算 ] 参数: - - **x** (Variable)- 一个秩在[1, 6]范围中的张量(Tensor). - - **expand_times** (list|tuple|Variable) - 每一个维度要扩展的次数。 + - **x** (Variable)- 维度最高为6的多维 ``Tensor`` 或 ``LoDTensor``,数据类型为 ``float32``,``float64``,``int32`` 或 ``bool``。 + - **expand_times** (list|tuple|Variable)- 数据类型是 ``int32`` 。如果 ``expand_times`` 的类型是 list 或 tuple,它的元素可以是整数或者形状为[1]的 ``Tensor`` 或 ``LoDTensor``。如果 ``expand_times`` 的类型是 ``Variable``,则是1-D ``Tensor`` 或 ``LoDTensor``。表示 ``x`` 每一个维度被复制的次数。 + - **name** (str,可选)- 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name`。默认值: ``None``。 -返回: expand变量是LoDTensor。expand运算后,输出(Out)的每个维度的大小等于输入(X)的相应维度的大小乘以 ``expand_times`` 给出的相应值。 +返回:维度与输入 ``x`` 相同的 ``Tensor`` 或 ``LoDTensor``,数据类型与 ``x`` 相同。返回值的每个维度的大小等于 ``x`` 的相应维度的大小乘以 ``expand_times`` 给出的相应值。 + +返回类型:``Variable`` 。 + +抛出异常: + - :code:`TypeError`:``expand_times`` 的类型应该是 list、tuple 或 Variable。 + - :code:`ValueError`:``expand_times`` 中的元素不能是负值。 -返回类型: 变量(Variable) **代码示例** diff --git a/doc/fluid/api_cn/layers_cn/pow_cn.rst b/doc/fluid/api_cn/layers_cn/pow_cn.rst index a7f535618..9c4350291 100644 --- a/doc/fluid/api_cn/layers_cn/pow_cn.rst +++ b/doc/fluid/api_cn/layers_cn/pow_cn.rst @@ -5,20 +5,22 @@ pow .. py:function:: paddle.fluid.layers.pow(x, factor=1.0, name=None) -指数激活算子(Pow Activation Operator.) +该OP是指数激活算子: .. math:: out = x^{factor} -参数 - - **x** (Variable) - Pow operator的输入。 - - **factor** (FLOAT|Variable|1.0) - Pow的指数因子。 - - **name** (str|None) -这个层的名称(可选)。如果设置为None,该层将被自动命名。 +**注意:如果需要对输入进行 elementwise_pow 操作,请查使用** :ref:`cn_api_fluid_layers_elementwise_pow` 。 -返回: 输出Pow操作符 +参数: + - **x** (Variable)- 多维 ``Tensor`` 或 ``LoDTensor`` ,数据类型为 ``float32`` 或 ``float64`` 。 + - **factor** (float32|Variable,可选)- ``float32`` 或形状为[1]的 ``Tensor`` 或 ``LoDTensor``,数据类型为 ``float32``。Pow OP的指数因子。默认值:1.0。 + - **name** (str,可选)- 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name`。默认值: ``None``。 -返回类型: 输出(Variable) +返回:维度与输入 `x` 相同的 ``Tensor`` 或 ``LoDTensor``,数据类型与 ``x`` 相同。 + +返回类型:Variable。 **代码示例:** diff --git a/doc/fluid/api_cn/layers_cn/reshape_cn.rst b/doc/fluid/api_cn/layers_cn/reshape_cn.rst index 6596e6316..2d0d3a478 100644 --- a/doc/fluid/api_cn/layers_cn/reshape_cn.rst +++ b/doc/fluid/api_cn/layers_cn/reshape_cn.rst @@ -5,40 +5,46 @@ reshape .. py:function:: paddle.fluid.layers.reshape(x, shape, actual_shape=None, act=None, inplace=False, name=None) -保持输入张量数据不变的情况下,改变张量的形状。 +该OP在保持输入 ``x`` 数据不变的情况下,改变 ``x`` 的形状。 -目标形状可由 ``shape`` 或 ``actual_shape`` 给出。``shape`` 可以是一个包含整数或张量的列表,或者是一个张量变量,而 ``actual_shape`` 是一个张量变量。 -当两个属性同时被指定时,``actual_shape`` 的优先级高于 ``shape`` ,但此时 ``shape`` 只能是整数列表,且在编译时仍然应该正确地设置 ``shape`` 以保证形状推断。 +目标形状可由 ``shape`` 或 ``actual_shape`` 给出。当两个属性同时被指定时,``actual_shape`` 的优先级高于 ``shape`` ,但此时 ``shape`` 只能是整数列表或元组,且在编译时仍然应该正确地设置 ``shape`` 以保证形状推断。 在指定目标shape时存在一些技巧: .. code-block:: text - 1. -1表示这个维度的值是从x的元素总数和剩余维度推断出来的。因此,有且只有一个维度可以被设置为-1。 - 2. 0表示实际的维数是从x的对应维数中复制出来的,因此shape中0的索引值不能超过秩(x)。 + 1. -1 表示这个维度的值是从x的元素总数和剩余维度推断出来的。因此,有且只有一个维度可以被设置为-1。 + 2. 0 表示实际的维数是从x的对应维数中复制出来的,因此shape中0的索引值不能超过x的维度。 这里有一些例子来解释它们: .. code-block:: text - 1. 给定一个形状为[2,4,6]的三维张量x,目标形状为[6,8], ``reshape`` 将x变换为形状为[6,8]的二维张量,且x的数据保持不变。 - 2. 给定一个形状为[2,4,6]的三维张量x,指定的目标形状为[2,3,-1,2], ``reshape``将x变换为形状为[2,3,4,2]的4- d张量,不改变x的数据。在这种情况下,目标形状的一个维度被设置为-1,这个维度的值是从x的元素总数和剩余维度推断出来的。 - 3. 给定一个形状为[2,4,6]的三维张量x,目标形状为[- 1,0,3,2],整形算子将x变换为形状为[2,4,3,2]的四维张量,使x的数据保持不变。在这种情况下,0意味着实际的维值将从x的对应维数中复制,-1位置的维度由x的元素总数和剩余维度计算得来。 + 1. 给定一个形状为[2,4,6]的三维张量x,目标形状为[6,8],则将x变换为形状为[6,8]的2-D张量,且x的数据保持不变。 + 2. 给定一个形状为[2,4,6]的三维张量x,目标形状为[2,3,-1,2],则将x变换为形状为[2,3,4,2]的4-D张量,且x的数据保持不变。在这种情况下,目标形状的一个维度被设置为-1,这个维度的值是从x的元素总数和剩余维度推断出来的。 + 3. 给定一个形状为[2,4,6]的三维张量x,目标形状为[-1,0,3,2],则将x变换为形状为[2,4,3,2]的4-D张量,且x的数据保持不变。在这种情况下,0对应位置的维度值将从x的对应维数中复制,-1对应位置的维度值由x的元素总数和剩余维度推断出来。 -**注意:** 参数``actual_shape`` 之后将被舍弃,只用参数 ``shape`` 来表示目标形状。 +**注意:参数** ``actual_shape`` **之后将被舍弃,只用参数** ``shape`` **来表示目标形状。** 参数: - - **x** (Variable) - 输入张量。 - - **shape** (list|tuple|Variable) - 新的形状。新形状最多只能有一个维度为-1。如果 ``shape``是一个 list 或 tuple, 它可以包含整数或者 Variable 类型的元素,但是 Variable 类型元素的形状只能是[1]。 - - **actual_shape** (Variable) - 一个可选的输入。如果提供,则根据 ``actual_shape`` 进行 reshape,而不是指定 ``shape`` 。也就是说,``actual_shape`` 具有比 ``shape`` 更高的优先级,此时 ``shape`` 只能是整数列表。 ``actual_shape`` 将在未来的版本中舍弃。更新提示:``actual_shape`` 将被舍弃并用 ``shape`` 代替。 - - **act** (str) - 对reshpe后的tensor变量执行非线性激活。 - - **inplace** (bool) - 如果 ``inplace`` 为True,则 ``layers.reshape`` 的输入和输出是同一个变量,否则, ``layers.reshape`` 的输入和输出是不同的变量。请注意,如果x作为多个层的输入,则 ``inplace`` 必须为False。 - - **name** (str) - 可选变量,此层的名称。 - -返回:如果 ``act`` 为 ``None``,返回reshape后的tensor变量。如果 ``inplace`` 为 ``False`` ,将返回一个新的Tensor变量,否则,将改变x自身。如果 ``act`` 不是 ``None`` ,则返回激活的张量变量。 - -抛出异常:``TypeError`` - 如果 actual_shape 既不是变量也不是None. + - **x** (Variable)- 多维 ``Tensor`` 或 ``LoDTensor``,数据类型为 ``float32``,``float64``,``int32``,或 ``int64``。 + - **shape** (list|tuple|Variable)- 数据类型是 ``int32`` 。定义目标形状。目标形状最多只能有一个维度为-1。如果 ``shape`` 的类型是 list 或 tuple, 它的元素可以是整数或者形状为[1]的 ``Tensor`` 或 ``LoDTensor``。如果 ``shape`` 的类型是 ``Variable``,则是1-D的 ``Tensor`` 或 ``LoDTensor``。 + - **actual_shape** (Variable,可选)- 1-D ``Tensor`` 或 ``LoDTensor``,默认值:`None`。如果 ``actual_shape`` 被提供,``actual_shape`` 具有比 ``shape`` 更高的优先级,此时 ``shape`` 只能是整数列表或元组。更新提示:``actual_shape`` 在未来的版本中将被舍弃,并用 ``shape`` 代替。 + - **act** (str,可选)- 对形状改变后的输入变量做非线性激活操作,激活函数类型可以参考 :ref:`api_guide_activations` 。默认值: ``None``。 + - **inplace** (bool,可选)- 如果 ``inplace`` 为 ``True``,则 ``layers.reshape`` 的输入和输出是同一个变量,否则 ``layers.reshape`` 的输入和输出是不同的变量。默认值:``False``。请注意,如果 ``x`` 是多个OP的输入,则 ``inplace`` 必须为False。 + - **name** (str,可选)- 该参数供开发人员打印调试信息时使用,具体用法请参见 :ref:`api_guide_Name`。默认值: ``None``。 + +返回:多维 ``Tensor`` 或 ``LoDTensor``,数据类型与 ``input`` 相同。如果 ``inplace`` 为 ``False``,则返回一个新的变量,否则将改变输入变量 ``x`` 自身。如果 ``act`` 为 ``None``,则直接返回形状改变后的变量,否则返回经过激活函数后的变量。 + +返回类型:Variable。 + +抛出异常: + - :code:`TypeError`:``actual_shape`` 的类型应该是 Variable 或 None。 + - :code:`TypeError`:``starts`` 的类型应该是list、tuple 或 Variable。 + - :code:`ValueError`:``shape`` 中至多有一个元素可以是-1。 + - :code:`ValueError`:``shape`` 中的元素为0时,对应的维度应该小于等于``x``的维度。 + - :code:`ValueError`:``shape`` 中的元素除了-1之外,都应该是非负值。 **代码示例** diff --git a/doc/fluid/api_cn/layers_cn/slice_cn.rst b/doc/fluid/api_cn/layers_cn/slice_cn.rst index 87b7ce523..0a0619109 100644 --- a/doc/fluid/api_cn/layers_cn/slice_cn.rst +++ b/doc/fluid/api_cn/layers_cn/slice_cn.rst @@ -5,13 +5,11 @@ slice .. py:function:: paddle.fluid.layers.slice(input, axes, starts, ends) -slice算子。 - -沿多个轴生成输入张量的切片。与numpy类似: https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html Slice使用 ``axes`` 、 ``starts`` 和 ``ends`` 属性来指定轴列表中每个轴的起点和终点维度,它使用此信息来对输入数据张量切片。如果向 ``starts`` 或 ``ends`` 传递负值,则表示该维度结束之前的元素数目。如果传递给 ``starts`` 或 ``end`` 的值大于n(此维度中的元素数目),则表示n。当切片一个未知数量的维度时,建议传入INT_MAX. ``axes`` 的大小必须和 ``starts`` 和 ``ends`` 的相等。以下示例将解释切片如何工作: +该OP沿多个轴生成 ``input`` 的切片。与numpy类似: https://docs.scipy.org/doc/numpy/reference/arrays.indexing.html 该OP使用 ``axes`` 、 ``starts`` 和 ``ends`` 属性来指定轴列表中每个轴的起点和终点位置,并使用此信息来对 ``input`` 切片。如果向 ``starts`` 或 ``ends`` 传递负值如 :math:`-i`,则表示该轴的反向第 :math:`i-1` 个位置(这里以0为初始位置)。如果传递给 ``starts`` 或 ``end`` 的值大于n(维度中的元素数目),则表示n。当切片一个未知数量的维度时,建议传入 ``INT_MAX``。 ``axes`` 、 ``starts`` 和 ``ends`` 三个参数的元素数目必须相等。以下示例将解释切片如何工作: :: - 案例1: + 示例1: 给定: data=[[1,2,3,4],[5,6,7,8],] axes=[0,1] @@ -20,24 +18,27 @@ slice算子。 则: result=[[5,6,7],] - 案例2: + 示例2: 给定: data=[[1,2,3,4],[5,6,7,8],] starts=[0,1] - ends=[-1,1000] + ends=[-1,1000] # 此处-1表示第0维的反向第0个位置,索引值是1。 则: - result=[[2,3,4],] + result=[[2,3,4],] # 即 data[0:1, 1:4] 参数: - - **input** (Variable)- 提取切片的数据张量(Tensor)。 - - **axes** (List)- (list )开始和结束的轴适用于。它是可选的。如果不存在,将被视为[0,1,...,len(starts)- 1]。 - - **starts** (List|Variable)- (list )在轴上开始相应轴的索引。 - - **ends** (List|Variable)- (list )在轴上结束相应轴的索引。 + - **input** (Variable)- 多维 ``Tensor`` 或 ``LoDTensor``,数据类型为 ``float16``, ``float32``,``float64``,``int32``,或 ``int64``。 + - **axes** (list|tuple)- 数据类型是 ``int32``。表示进行切片的轴。它是可选的,如果不存在,将被视为 :math:`[0,1,...,len(starts)- 1]`。 + - **starts** (list|tuple|Variable)- 数据类型是 ``int32``。如果 ``starts`` 的类型是 list 或 tuple,它的元素可以是整数或者形状为[1]的 ``Tensor`` 或 ``LoDTensor``。如果 ``starts`` 的类型是 ``Variable``,则是1-D ``Tensor`` 或 ``LoDTensor``。表示在各个轴上切片的起始索引值。 + - **ends** (list|tuple|Variable)- 数据类型是 ``int32``。如果 ``ends`` 的类型是 list 或 tuple,它的元素可以是整数或者形状为[1]的 ``Tensor`` 或 ``LoDTensor``。如果 ``ends`` 的类型是 ``Variable``,则是1-D ``Tensor`` 或 ``LoDTensor``。表示在各个轴上切片的结束索引值。 -返回: 切片数据张量(Tensor). +返回:多维 ``Tensor`` 或 ``LoDTensor``,数据类型与 ``input`` 相同。 -返回类型: 输出(Variable)。 +返回类型:Variable。 +抛出异常: + - :code:`TypeError`:``starts`` 的类型应该是 list、tuple 或 Variable。 + - :code:`TypeError`:``ends`` 的类型应该是 list、tuple 或 Variable。 **代码示例:** -- GitLab