未验证 提交 a2f45bc9 编写于 作者: L Leo Chen 提交者: GitHub

Refine cn doc of some APIs (#2465)

* add bernoulli

* refine manual_seed

* add bernoulli

* refine bernoulli

* refine squeeze

* refine unsqueeze

* refine stack

* fix manual_seed

* fix manual_seed
上级 be5b298b
......@@ -5,33 +5,20 @@ manual_seed
.. py:function:: paddle.framework.manual_seed(seed)
:alias_main: paddle.manual_seed
:alias: paddle.manual_seed,paddle.framework.random.manual_seed
设置并固定随机种子, manual_seed设置后,会将用户定义的Program中的random_seed参数设置成相同的种子
设置全局默认generator的随机种子。
参数:
- **seed** (int32|int64) - 设置产生随机数的种子
- **seed** (int) - 要设置的的随机种子,推荐使用较大的整数。
返回: 无
返回:
Generator:全局默认generator对象。
**代码示例**:
.. code-block:: python
import paddle
from paddle.framework import manual_seed
default_seed = paddle.fluid.default_startup_program().random_seed #default_seed为0
manual_seed(102)
prog = paddle.fluid.Program()
prog_seed = prog.random_seed #prog_seed为102
update_seed = paddle.fluid.default_startup_program().random_seed #update_seed 为102
paddle.manual_seed(102)
......@@ -19,6 +19,7 @@ paddle.tensor
tensor_cn/argsort_cn.rst
tensor_cn/asin_cn.rst
tensor_cn/atan_cn.rst
tensor_cn/bernoulli_cn.rst
tensor_cn/bmm_cn.rst
tensor_cn/cast_cn.rst
tensor_cn/ceil_cn.rst
......
.. _cn_api_tensor_bernoulli:
bernoulli
-------------------------------
.. py:function:: paddle.bernoulli(x, name=None)
该OP以输入 ``x`` 为概率,生成一个伯努利分布(0-1分布)的Tensor,输出Tensor的形状和数据类型与输入 ``x`` 相同。
.. math::
out_i \sim Bernoulli(p = x_i)
参数:
- **x** (Tensor) - 输入的概率值。数据类型为 ``float32`` 、``float64`` .
- **name** (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`。
返回:
Tensor:伯努利分布的随机Tensor,形状和数据类型为与输入 ``x`` 相同。
**代码示例**:
.. code-block:: python
import paddle
import numpy as np
paddle.disable_static()
x = paddle.rand([2, 3])
print(x.numpy())
# [[0.11272584 0.3890902 0.7730957 ]
# [0.10351662 0.8510418 0.63806665]]
out = paddle.bernoulli(x)
print(out.numpy())
# [[0. 0. 1.]
# [0. 0. 1.]]
......@@ -2,36 +2,62 @@
squeeze
-------------------------------
.. py:function:: paddle.tensor.squeeze(input, zxes, name=None)
.. py:function:: paddle.tensor.squeeze(x, axis=None, name=None)
:alias_main: paddle.squeeze
:alias: paddle.squeeze,paddle.tensor.squeeze,paddle.tensor.manipulation.squeeze
:update_api: paddle.fluid.layers.squeeze
该OP会删除输入Tensor的Shape中尺寸为1的维度。如果指定了axis,则会删除axis中指定的尺寸为1的维度。如果没有指定axis,那么所有等于1的维度都会被删除。
.. code-block:: text
该OP会根据axes压缩输入Tensor的维度。如果指定了axes,则会删除axes中指定的维度,axes指定的维度要等于1。如果没有指定axes,那么所有等于1的维度都会被删除。
Case 1:
Input:
x.shape = [1, 3, 1, 5] # If axis is not provided, all dims equal of size 1 will be removed.
axis = None
Output:
out.shape = [3, 5]
Case 2:
Input:
x.shape = [1, 3, 1, 5] # If axis is provided, it will remove the dimension(s) by given axis that of size 1.
axis = 0
Output:
out.shape = [3, 1, 5]
Case 3:
Input:
x.shape = [1, 3, 1, 5] # If the dimension of one given axis (3) is not of size 1, the dimension remain unchanged.
axis = [0, 2, 3]
Output:
out.shape = [3, 5]
Case 4:
Input:
x.shape = [1, 3, 1, 5] # If axis is negative, axis = axis + ndim (number of dimensions in x).
axis = [-2]
Output:
out.shape = [1, 3, 5]
**参数**:
- **input** (Variable) - 输入任意维度的Tensor。 支持的数据类型:float32,float64,int8,int32,int64。
- **axes** (list) - 输入一个或一列整数,代表要压缩的轴。axes的范围: [−rank(input),rank(input))] 。 axes为负数时, axes=axes+rank(input) 。
- **name** (str,可选) - 一般无需设置,默认值为None
- **x** (Tensor) - 输入的 `Tensor` ,数据类型为:float32、float64、bool、int8、int32、int64。
- **axis** (int|list|tuple, 可选) - 输入一个或一列整数,代表要压缩的轴。axis的范围: [−ndim(x), ndim(x))] 。 如果axis为负数, 则axis=axis+ndim(x) 。
- **name** (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
**返回**:返回对维度进行压缩后的Tensor数据类型与输入Tensor一致。
**返回**:返回对维度进行压缩后的Tensor数据类型与输入Tensor一致。
**返回类型**:Variable
**返回类型**:Tensor
**代码示例**:
.. 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]
paddle.disable_static()
x = paddle.rand([5, 1, 10])
output = paddle.squeeze(x, axis=1)
# output.shape [5, 10]
......@@ -2,22 +2,63 @@
stack
-------------------------------
.. py:function:: paddle.tensor.stack(x, axis=0)
.. py:function:: paddle.tensor.stack(x, axis=0, name=None)
:alias_main: paddle.stack
:alias: paddle.stack,paddle.tensor.stack,paddle.tensor.manipulation.stack
:update_api: paddle.fluid.layers.stack
该OP沿 axis 轴对输入 x 进行堆叠操作。要求所有输入Tensor有相同的Shape和数据类型。
例如,输入 x 为 N 个 Shape 为 [A, B]的 Tensor, 如果 ``axis==0`` , 则输出 Tensor 的 Shape 为 [N, A, B]; 如果 ``axis==1`` , 则输出 Tensor 的 Shape 为 [A, N, B]; 以此类推。
该OP沿 axis 轴对输入 x 进行堆叠操作。
.. code-block:: text
Case 1:
Input:
x[0].shape = [1, 2]
x[0].data = [ [1.0 , 2.0 ] ]
x[1].shape = [1, 2]
x[1].data = [ [3.0 , 4.0 ] ]
x[2].shape = [1, 2]
x[2].data = [ [5.0 , 6.0 ] ]
Attrs:
axis = 0
Output:
Out.dims = [3, 1, 2]
Out.data =[ [ [1.0, 2.0] ],
[ [3.0, 4.0] ],
[ [5.0, 6.0] ] ]
Case 2:
Input:
x[0].shape = [1, 2]
x[0].data = [ [1.0 , 2.0 ] ]
x[1].shape = [1, 2]
x[1].data = [ [3.0 , 4.0 ] ]
x[2].shape = [1, 2]
x[2].data = [ [5.0 , 6.0 ] ]
Attrs:
axis = 1 or axis = -2 # If axis = -2, axis = axis+ndim(x[0])+1 = -2+2+1 = 1.
Output:
Out.shape = [1, 3, 2]
Out.data =[ [ [1.0, 2.0]
[3.0, 4.0]
[5.0, 6.0] ] ]
**参数**:
- **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。
- **x** (Tensor|list[Tensor]) – 输入 x 可以是单个Tensor,或是多个Tensor组成的列表。如果 x 是一个列表,那么这些Tensor的维度必须相同。支持的数据类型: float32,float64,int32,int64。
- **axis** (int, 可选) – 指定对输入Tensor进行堆叠运算的轴,有效 axis 的范围是: [−(R+1),R+1)],R是输入中第一个Tensor的维数。如果 axis < 0,则 axis=axis+R+1 。默认值为0。
- **axis** (int, 可选) – 指定对输入Tensor进行堆叠运算的轴,有效 axis 的范围是: [−(R+1),R+1)],R是输入中第一个Tensor的rank。如果 axis < 0,则 axis=axis+rank(x[0])+1 。axis默认值为0
- **name** (str, 可选) - 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
**返回**:堆叠运算后的Tensor,数据类型与输入Tensor相同。输出维度等于 rank(x[0])+1 维。
**返回**:堆叠运算后的Tensor,数据类型与输入Tensor相同。
**返回类型**:Variable
......@@ -26,17 +67,20 @@ stack
.. 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]]]
data1 = np.array([[1.0, 2.0]])
data2 = np.array([[3.0, 4.0]])
data3 = np.array([[5.0, 6.0]])
paddle.disable_static()
x1 = paddle.to_variable(data1)
x2 = paddle.to_variable(data2)
x3 = paddle.to_variable(data3)
out = paddle.stack([x1, x2, x3], axis=0)
print(out.shape) # [3, 1, 2]
print(out.numpy())
# [[[1., 2.]],
# [[3., 4.]],
# [[5., 6.]]]
......@@ -2,36 +2,35 @@
unsqueeze
-------------------------------
.. py:function:: paddle.tensor.unsqueeze(input, axes, name=None)
.. py:function:: paddle.tensor.unsqueeze(x, axis, name=None)
:alias_main: paddle.unsqueeze
:alias: paddle.unsqueeze,paddle.tensor.unsqueeze,paddle.tensor.manipulation.unsqueeze
:update_api: paddle.fluid.layers.unsqueeze
该OP向输入(input)的shape中一个或多个位置(axes)插入维度。
该OP向输入Tensor的Shape中一个或多个位置(axis)插入尺寸为1的维度。
**参数**:
- **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
- **x** (Variable)- 输入的 `Tensor` ,数据类型为:float32、float64、bool、int8、int32、int64。
- **axis** (int|list|tuple|Tensor) - 表示要插入维度的位置。数据类型是 int32 。如果 axis 的类型是 list 或 tuple,它的元素可以是整数或者形状为[1]的 Tensor 。如果 axes 的类型是 Tensor,则是1-D Tensor。如果 axis 是负数,则 axis=axis+ndim(x)+1
- **name** (str,可选)- 操作的名称(可选,默认值为None)。更多信息请参见 :ref:`api_guide_Name`
**返回**:扩展维度后的多维Tensor
**返回**:扩展维度后的多维Tensor,数据类型与输入Tensor一致。
**返回类型**:Variable
**返回类型**:Tensor
**代码示例**:
.. 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]
paddle.disable_static()
x = paddle.rand([5, 10])
print(x.shape) # [5, 10]
out1 = paddle.unsqueeze(x, axis=0)
print(out1.shape) # [1, 5, 10]
out2 = paddle.unsqueeze(x, axis=[0, 2])
print(out2.shape) # [1, 5, 1, 10]
axis = paddle.fluid.dygraph.to_variable([0, 1, 2])
out3 = paddle.unsqueeze(x, axis=axis)
print(out3.shape) # [1, 1, 1, 5, 10]
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册