Skip to content

Commit 2dae314

Browse files
修复 paddle.assign 等 API 的文档 (#4850)
* Update assign_cn.rst * Update AdaptiveAvgPool1D_cn.rst * Update adaptive_avg_pool1d_cn.rst * Update XavierNormal_cn.rst * Update XavierUniform_cn.rst * Update where_cn.rst * Update AdaptiveAvgPool1D_cn.rst * Update AdaptiveAvgPool1D_cn.rst * Update XavierNormal_cn.rst * Update XavierUniform_cn.rst * Update where_cn.rst * Update AdaptiveAvgPool1D_cn.rst * Update adaptive_avg_pool1d_cn.rst * 汇聚->池化 * Update AdaptiveAvgPool1D_cn.rst Co-authored-by: Ligoml <[email protected]>
1 parent d82403a commit 2dae314

File tree

6 files changed

+53
-177
lines changed

6 files changed

+53
-177
lines changed

docs/api/paddle/assign_cn.rst

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,36 +3,24 @@
33
assign
44
-------------------------------
55

6-
.. py:function:: paddle.assign(x,output=None)
6+
.. py:function:: paddle.assign(x, output=None)
77
88
99
1010
11-
将输入Tensor或numpy数组拷贝至输出Tensor
11+
将输入数据拷贝至输出 Tensor
1212

1313
参数
1414
::::::::::::
1515

16-
- **x** (Tensor|np.ndarray|list|tuple|scalar) - 输入Tensor,或numpy数组,或由基本数据组成的list/tuple,或基本数据,支持数据类型为float32, float64, int32, int64和bool。注意:由于当前框架的protobuf传输数据限制,float64数据会被转化为float32数据
17-
- **output** (Tensor,可选) - 输出Tensor。如果为None,则创建一个新的Tensor作为输出Tensor,默认值为None
16+
- **x** (Tensor|np.ndarray|list|tuple|scalar) - 输入 Tensor,或 numpy 数组,或由基本数据组成的 list/tuple,或基本数据,支持数据类型为 float32、float64int32、int64 和 bool。注意:由于当前框架的 protobuf 传输数据限制,float64 数据会被转化为 float32 数据
17+
- **output** (Tensor,可选) - 输出 Tensor。如果为 None,则创建一个新的 Tensor 作为输出 Tensor。默认值为 None
1818

1919
返回
2020
::::::::::::
21-
输出Tensor,形状、数据类型、数据值和 ``x`` 一致。
21+
Tensor,形状、数据类型和值与 ``x`` 一致。
2222

2323

2424
代码示例
2525
::::::::::::
26-
27-
.. code-block:: python
28-
29-
import paddle
30-
import numpy as np
31-
data = paddle.full(shape=[3, 2], fill_value=2.5, dtype='float64') # [[2.5, 2.5], [2.5, 2.5], [2.5, 2.5]]
32-
array = np.array([[1, 1],
33-
[3, 4],
34-
[1, 3]]).astype(np.int64)
35-
result1 = paddle.zeros(shape=[3, 3], dtype='float32')
36-
paddle.assign(array, result1) # result1 = [[1, 1], [3 4], [1, 3]]
37-
result2 = paddle.assign(data) # result2 = [[2.5, 2.5], [2.5, 2.5], [2.5, 2.5]]
38-
result3 = paddle.assign(np.array([[2.5, 2.5], [2.5, 2.5], [2.5, 2.5]], dtype='float32')) # result3 = [[2.5, 2.5], [2.5, 2.5], [2.5, 2.5]]
26+
COPY-FROM: paddle.assign:assign-example

docs/api/paddle/nn/AdaptiveAvgPool1D_cn.rst

Lines changed: 10 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,59 +4,31 @@
44
AdaptiveAvgPool1D
55
-------------------------------
66

7-
.. py:function:: paddle.nn.AdaptiveAvgPool1D(output_size, name=None)
7+
.. py:class:: paddle.nn.AdaptiveAvgPool1D(output_size, name=None)
88
9-
该算子根据输入 `x` , `output_size` 等参数对一个输入Tensor计算1D的自适应平均池化。输入和输出都是3-D Tensor,
10-
默认是以 `NCL` 格式表示的,其中 `N` 是 batch size, `C` 是通道数, `L` 是输入特征的长度.
9+
根据 ``output_size`` 对一个输入 Tensor 计算 1D 的自适应平均池化。输入和输出都是以 NCL 格式表示的 3-D Tensor,其中 N 是批大小,C 是通道数而 L 是特征的长度。输出的形状是 :math:`[N, C, output\_size]`。
1110

12-
计算公式如下:
11+
计算公式为
1312

1413
.. math::
1514
16-
lstart &= floor(i * L_{in} / L_{out})
15+
lstart &= \lfloor i * L_{in} / L_{out}\rfloor,
1716
18-
lend &= ceil((i + 1) * L_{in} / L_{out})
17+
lend &= \lceil(i + 1) * L_{in} / L_{out}\rceil,
1918
20-
Output(i) &= \frac{\sum Input[lstart:lend]}{lend - lstart}
19+
Output(i) &= \frac{\sum Input[lstart:lend]}{lend - lstart}.
2120
2221
2322
参数
2423
:::::::::
25-
- **output_size** (int): 算子输出特征图的长度,其数据类型为int。
26-
- **name** (str,可选): 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
27-
28-
形状
29-
:::::::::
30-
- **x** (Tensor): 默认形状为(批大小,通道数,输出特征长度),即NCL格式的3-D Tensor。 其数据类型为float32或者float64。
31-
- **output** (Tensor): 默认形状为(批大小,通道数,输出特征长度),即NCL格式的3-D Tensor。 其数据类型与输入x相同。
24+
- **output_size** (int) - 输出特征的长度,数据类型为 int。
25+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None。
3226

3327
返回
3428
:::::::::
35-
计算AdaptiveAvgPool1D的可调用对象
29+
用于计算 1D 自适应平均池化的可调用对象。
3630

3731

3832
代码示例
3933
:::::::::
40-
41-
.. code-block:: python
42-
43-
# average adaptive pool1d
44-
# suppose input data in shape of [N, C, L], `output_size` is m or [m],
45-
# output shape is [N, C, m], adaptive pool divide L dimension
46-
# of input data into m grids averagely and performs poolings in each
47-
# grid to get output.
48-
# adaptive avg pool performs calculations as follow:
49-
#
50-
# for i in range(m):
51-
# lstart = floor(i * L / m)
52-
# lend = ceil((i + 1) * L / m)
53-
# output[:, :, i] = sum(input[:, :, lstart: lend])/lend - lstart)
54-
#
55-
import paddle
56-
import paddle.nn as nn
57-
58-
59-
data = paddle.to_tensor(paddle.uniform(shape = [1, 3, 32], min = -1, max = 1, dtype = "float32"))
60-
AdaptiveAvgPool1D = nn.layer.AdaptiveAvgPool1D(output_size=16)
61-
pool_out = AdaptiveAvgPool1D(data)
62-
# pool_out shape: [1, 3, 16]
34+
COPY-FROM: paddle.nn.AdaptiveAvgPool1D:AdaptiveAvgPool1D-example

docs/api/paddle/nn/functional/adaptive_avg_pool1d_cn.rst

Lines changed: 7 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,23 @@ adaptive_avg_pool1d
66

77
.. py:function:: paddle.nn.functional.adaptive_avg_pool1d(x, output_size, name=None)
88
9-
该算子根据输入 `x` , `output_size` 等参数对一个输入Tensor计算1D的自适应平均池化。输入和输出都是3-D Tensor,
10-
默认是以 `NCL` 格式表示的,其中 `N` 是 batch size, `C` 是通道数, `L` 是输入特征的长度.
9+
根据 ``output_size`` 对 Tensor ``x`` 计算 1D 自适应平均池化。
1110

1211
.. note::
13-
详细请参考对应的 `Class` 请参考: :ref:`cn_api_nn_AdaptiveAvgPool1D`
12+
详细请参考对应的 `Class` 请参考: :ref:`cn_api_nn_AdaptiveAvgPool1D`。
1413

1514

1615
参数
1716
:::::::::
18-
- **x** (Tensor): 当前算子的输入, 其是一个形状为 `[N, C, L]` 的3-D Tensor其中 `N` 是batch size, `C` 是通道数, `L` 是输入特征的长度。 其数据类型为float32或者float64
19-
- **output_size** (int): 算子输出特征图的长度,其数据类型为int
20-
- **name** (str,可选): 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
17+
- **x** (Tensor) - 自适应平均池化的输入,它是形状为 :math:`[N,C,L]` 的 3-D Tensor其中 :math:`N` 是批大小,:math:`C` 是通道数而 :math:`L` 是输入特征的长度,其数据类型为 float32 或 float64
18+
- **output_size** (int) - 输出特征的长度,数据类型为 int
19+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None
2120

2221
返回
2322
:::::::::
24-
``Tensor``, 输入 `x` 经过自适应池化计算得到的目标3-D Tensor,其数据类型与输入相同
23+
Tensor,计算 1D 自适应平均池化的结果,数据类型与输入相同
2524

2625

2726
代码示例
2827
:::::::::
29-
30-
.. code-block:: python
31-
32-
# average adaptive pool1d
33-
# suppose input data in shape of [N, C, L], `output_size` is m,
34-
# output shape is [N, C, m], adaptive pool divide L dimension
35-
# of input data into m grids averagely and performs poolings in each
36-
# grid to get output.
37-
# adaptive avg pool performs calculations as follow:
38-
#
39-
# for i in range(m):
40-
# lstart = floor(i * L / m)
41-
# lend = ceil((i + 1) * L / m)
42-
# output[:, :, i] = sum(input[:, :, lstart: lend])/(lstart - lend)
43-
#
44-
import paddle
45-
import paddle.nn.functional as F
46-
import numpy as np
47-
48-
data = paddle.to_tensor(np.random.uniform(-1, 1, [1, 3, 32]).astype(np.float32))
49-
pool_out = F.adaptive_avg_pool1d(data, output_size=16)
50-
# pool_out shape: [1, 3, 16])
28+
COPY-FROM: paddle.nn.functional.adaptive_avg_pool1d:adaptive_avg_pool1d-example

docs/api/paddle/nn/initializer/XavierNormal_cn.rst

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,26 @@ XavierNormal
66
.. py:class:: paddle.nn.initializer.XavierNormal(fan_in=None, fan_out=None, name=None)
77
88
9-
该类实现Xavier权重初始化方法( Xavier weight initializer),Xavier权重初始化方法出自Xavier Glorot和Yoshua Bengio的论文 `Understanding the difficulty of training deep feedforward neural networks <http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf>`_
9+
使用正态分布的泽维尔权重初始化方法。泽维尔权重初始化方法出自泽维尔·格洛特和约书亚·本吉奥的论文 `Understanding the difficulty of training deep feedforward neural networks <http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf>`_
1010

11-
该初始化函数用于保持所有层的梯度尺度几乎一致。
12-
13-
正态分布的情况下,均值为0,标准差为:
11+
该初始化函数用于保持所有层的梯度尺度几乎一致。所使用的正态分布的的均值为 :math:`0`,标准差为
1412

1513
.. math::
1614
17-
x = \sqrt{\frac{2.0}{fan\_in+fan\_out}}
15+
x = \sqrt{\frac{2.0}{fan\_in+fan\_out}}.
1816
1917
参数
2018
::::::::::::
2119

22-
- **fan_in** (float,可选) - 用于Xavier初始化的fan_in,从tensor中推断。默认为None
23-
- **fan_out** (float,可选) - 用于Xavier初始化的fan_out,从tensor中推断。默认为None
24-
- **name** str,可选- 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为None
20+
- **fan_in** (float,可选) - 用于泽维尔初始化的 fan_in,从 Tensor 中推断,默认值为 None
21+
- **fan_out** (float,可选) - 用于泽维尔初始化的 fan_out,从 Tensor 中推断,默认值为 None
22+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None
2523

2624
返回
2725
::::::::::::
2826

29-
由使用正态分布的Xavier权重初始化的参数
27+
由使用正态分布的泽维尔权重初始化的参数
3028

3129
代码示例
3230
::::::::::::
33-
34-
.. code-block:: python
35-
36-
import paddle
37-
38-
data = paddle.ones(shape=[3, 1, 2], dtype='float32')
39-
weight_attr = paddle.framework.ParamAttr(
40-
name="linear_weight",
41-
initializer=paddle.nn.initializer.XavierNormal())
42-
bias_attr = paddle.framework.ParamAttr(
43-
name="linear_bias",
44-
initializer=paddle.nn.initializer.XavierNormal())
45-
linear = paddle.nn.Linear(2, 2, weight_attr=weight_attr, bias_attr=bias_attr)
46-
# inear.weight: [[ 0.06910077 -0.18103665]
47-
# [-0.02546741 -1.0402188 ]]
48-
# linear.bias: [-0.5012929 0.12418364]
49-
50-
res = linear(data)
51-
# res: [[[-0.4576595 -1.0970719]]
52-
# [[-0.4576595 -1.0970719]]
53-
# [[-0.4576595 -1.0970719]]]
31+
COPY-FROM: paddle.nn.initializer.XavierNormal:initializer_XavierNormal-example

docs/api/paddle/nn/initializer/XavierUniform_cn.rst

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,48 +6,26 @@ XavierUniform
66
.. py:class:: paddle.nn.initializer.XavierUniform(fan_in=None, fan_out=None, name=None)
77
88
9-
该类实现Xavier权重初始化方法( Xavier weight initializer),Xavier权重初始化方法出自Xavier Glorot和Yoshua Bengio的论文 `Understanding the difficulty of training deep feedforward neural networks <http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf>`_
9+
使用均匀分布的泽维尔权重初始化方法。泽维尔权重初始化方法出自泽维尔·格洛特和约书亚·本吉奥的论文 `Understanding the difficulty of training deep feedforward neural networks <http://proceedings.mlr.press/v9/glorot10a/glorot10a.pdf>`_
1010

11-
该初始化函数用于保持所有层的梯度尺度几乎一致。
12-
13-
在均匀分布的情况下,取值范围为[-x,x],其中:
11+
该初始化函数用于保持所有层的梯度尺度几乎一致。在均匀分布的情况下,取值范围为 :math:`[-x,x]`,其中
1412

1513
.. math::
1614
17-
x = \sqrt{\frac{6.0}{fan\_in+fan\_out}}
15+
x = \sqrt{\frac{6.0}{fan\_in+fan\_out}}.
1816
1917
参数
2018
::::::::::::
2119

22-
- **fan_in** (float,可选) - 用于Xavier初始化的fan_in,从tensor中推断。默认为None
23-
- **fan_out** (float,可选) - 用于Xavier初始化的fan_out,从tensor中推断。默认为None
24-
- **name** str,可选- 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为None
20+
- **fan_in** (float,可选) - 用于泽维尔初始化的 fan_in,从 Tensor 中推断,默认值为 None
21+
- **fan_out** (float,可选) - 用于泽维尔初始化的 fan_out,从 Tensor 中推断,默认值为 None
22+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None
2523

2624
返回
2725
::::::::::::
2826

29-
由使用均匀分布的Xavier权重初始化的参数
27+
由使用均匀分布的泽维尔权重初始化方法得到的参数
3028

3129
代码示例
3230
::::::::::::
33-
34-
.. code-block:: python
35-
36-
import paddle
37-
38-
data = paddle.ones(shape=[3, 1, 2], dtype='float32')
39-
weight_attr = paddle.framework.ParamAttr(
40-
name="linear_weight",
41-
initializer=paddle.nn.initializer.XavierUniform())
42-
bias_attr = paddle.framework.ParamAttr(
43-
name="linear_bias",
44-
initializer=paddle.nn.initializer.XavierUniform())
45-
linear = paddle.nn.Linear(2, 2, weight_attr=weight_attr, bias_attr=bias_attr)
46-
# linear.weight: [[-0.04229349 -1.1248565 ]
47-
# [-0.10789523 -0.5938053 ]]
48-
# linear.bias: [ 1.1983747 -0.40201235]
49-
50-
res = linear(data)
51-
# res: [[[ 1.0481861 -2.1206741]]
52-
# [[ 1.0481861 -2.1206741]]
53-
# [[ 1.0481861 -2.1206741]]]
31+
COPY-FROM: paddle.nn.initializer.XavierUniform:initializer_XavierUniform-example

docs/api/paddle/where_cn.rst

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,55 +3,37 @@
33
where
44
-------------------------------
55

6-
.. py:function:: paddle.where(condition, x, y, name=None)
6+
.. py:function:: paddle.where(condition, x=None, y=None, name=None)
77
88
99
1010
11-
返回一个根据输入 ``condition``, 选择 ``x`` 或 ``y`` 的元素组成的多维 ``Tensor`` :
11+
根据 ``condition`` 来选择 ``x`` 或 ``y`` 中的对应元素来组成新的 Tensor。具体地,
1212

1313
.. math::
14-
Out_i =
15-
\left\{
16-
\begin{aligned}
17-
&X_i, & & if \ cond_i \ is \ True \\
18-
&Y_i, & & if \ cond_i \ is \ False \\
19-
\end{aligned}
20-
\right.
14+
out_i =
15+
\begin{cases}
16+
x_i, & \text{if} \ condition_i \ \text{is} \ True \\
17+
y_i, & \text{if} \ condition_i \ \text{is} \ False \\
18+
\end{cases}.
2119
2220
.. note::
23-
``numpy.where(condition)`` 功能与 ``paddle.nonzero(condition, as_tuple=True)`` 相同。
21+
``numpy.where(condition)`` 功能与 ``paddle.nonzero(condition, as_tuple=True)`` 相同,可以参考 :ref:`cn_api_tensor_search_nonzero`
2422

2523
参数
2624
::::::::::::
2725

28-
- **condition** Tensor- 选择 ``x`` 或 ``y`` 元素的条件 。为 ``True`` (非零值)时,选择 ``x`` ,否则选择 ``y``
29-
- **x** Tensor,Scalar,可选)- 多维 ``Tensor````Scalar``,数据类型为 ``float32`` 或 ``float64`` 或 ``int32````int64`` 。``x`` 和 ``y`` 必须都给出或者都不给出。
30-
- **y** Tensor,Scalar,可选)- 多维 ``Tensor````Scalar``,数据类型为 ``float32`` 或 ``float64`` 或 ``int32````int64`` 。``x`` 和 ``y`` 必须都给出或者都不给出。
31-
- **name** str,可选)- 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
26+
- **condition** (Tensor) - 选择 ``x`` 或 ``y`` 元素的条件。在为 True(非零值)时,选择 ``x``,否则选择 ``y``。
27+
- **x** (Tensor|scalar,可选) - 条件为 True 时选择的 Tensor 或 scalar,数据类型为 float32float64int32 或 int64。``x`` 和 ``y`` 必须都给出或者都不给出。
28+
- **y** (Tensor|scalar,可选) - 条件为 False 时选择的 Tensor 或 scalar,数据类型为 float32float64int32 或 int64。``x`` 和 ``y`` 必须都给出或者都不给出。
29+
- **name** (str,可选) - 具体用法请参见 :ref:`api_guide_Name`,一般无需设置,默认值为 None
3230

3331
返回
3432
::::::::::::
35-
Tensor,数据类型与 ``x`` 相同的 ``Tensor`` 。
33+
Tensor,形状与 ``condition`` 相同,数据类型与 ``x`` ``y`` 相同
3634

3735

3836

3937
代码示例
4038
::::::::::::
41-
42-
.. code-block:: python
43-
44-
import paddle
45-
46-
x = paddle.to_tensor([0.9383, 0.1983, 3.2, 1.2])
47-
y = paddle.to_tensor([1.0, 1.0, 1.0, 1.0])
48-
out = paddle.where(x>1, x, y)
49-
50-
print(out)
51-
#out: [1.0, 1.0, 3.2, 1.2]
52-
53-
out = paddle.where(x>1)
54-
print(out)
55-
#out: (Tensor(shape=[2, 1], dtype=int64, place=CPUPlace, stop_gradient=True,
56-
# [[2],
57-
# [3]]),)
39+
COPY-FROM: paddle.where:where-example

0 commit comments

Comments
 (0)