diff --git a/doc/fluid/api_cn/framework_cn/manual_seed_cn.rst b/doc/fluid/api_cn/framework_cn/manual_seed_cn.rst index 7f1078e82095c244b02e3b7bcc0516725fe5ef98..7ddf88f632df1a1c4fd6aea961b9cf30d75c682c 100644 --- a/doc/fluid/api_cn/framework_cn/manual_seed_cn.rst +++ b/doc/fluid/api_cn/framework_cn/manual_seed_cn.rst @@ -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) diff --git a/doc/fluid/api_cn/tensor_cn.rst b/doc/fluid/api_cn/tensor_cn.rst index e0892a4024fd42031fed4ede1d4050287ba5f9b5..99212fedaa2f4b1aa45c0d132ff163c5698b2149 100644 --- a/doc/fluid/api_cn/tensor_cn.rst +++ b/doc/fluid/api_cn/tensor_cn.rst @@ -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 diff --git a/doc/fluid/api_cn/tensor_cn/bernoulli_cn.rst b/doc/fluid/api_cn/tensor_cn/bernoulli_cn.rst new file mode 100644 index 0000000000000000000000000000000000000000..a18096b54472967d22d7707b2198581770569a0e --- /dev/null +++ b/doc/fluid/api_cn/tensor_cn/bernoulli_cn.rst @@ -0,0 +1,49 @@ +.. _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.]] + + + + + + + + diff --git a/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst b/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst index e8b85a221061dd923ad2a1714b8dde671a23d8b7..a188e8c431546227dd7246d7684331271dcb185d 100644 --- a/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/squeeze_cn.rst @@ -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] diff --git a/doc/fluid/api_cn/tensor_cn/stack_cn.rst b/doc/fluid/api_cn/tensor_cn/stack_cn.rst index 67d4cc022102d4d33c48bb23d299c2c40ec3e98b..38fd8c0cc524a901e69d73c0da9f6a302b6e9327 100644 --- a/doc/fluid/api_cn/tensor_cn/stack_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/stack_cn.rst @@ -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.]]] diff --git a/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst b/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst index 77b72b1b322515c5de2ec7a04b546f6e4e21e10a..e8dbe24681b39af44735fa7a651bc85f09c8f9dc 100644 --- a/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst +++ b/doc/fluid/api_cn/tensor_cn/unsqueeze_cn.rst @@ -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]