normal

paddle. normal ( mean=0.0, std=1.0, shape=None, name=None ) [源代码]

返回符合正态分布(均值为 mean,标准差为 std 的正态随机分布)的随机 Tensor。

如果 mean 是 Tensor,则输出 Tensor 和 mean 具有相同的形状和数据类型。 如果 mean 不是 Tensor,且 std 是 Tensor,则输出 Tensor 和 std 具有相同的形状和数据类型。 如果 meanstd 都不是 Tensor,则输出 Tensor 的形状为 shape,数据类型为 float32。

如果 meanstd 都是 Tensor,则 meanstd 的元素个数应该相同。

如果 mean 是一个复数,则输出 Tensor 服从复正态分布,其数据类型为 complex64。 如果 mean 是复数类型的 Tensor,则输出 Tensor 的数据类型与 mean 相同。

参数

  • mean (float|complex|Tensor,可选) - 输出 Tensor 的正态分布的平均值。如果 mean 是 float,则表示输出 Tensor 中所有元素的正态分布的平均值。如果 mean 是 Tensor (支持的数据类型为 float32、float64、complex64、complex128),则表示输出 Tensor 中每个元素的正态分布的平均值。默认值为 0.0。

  • std (float|Tensor,可选) - 输出 Tensor 的正态分布的标准差。如果 std 是 float,则表示输出 Tensor 中所有元素的正态分布的标准差。如果 std 是 Tensor (支持的数据类型为 float32、float64),则表示输出 Tensor 中每个元素的正态分布的标准差。默认值为 0.0。

  • shape (list|tuple|Tensor,可选) - 生成的随机 Tensor 的形状。如果 shape 是 list、tuple,则其中的元素可以是 int,或者是形状为[]且数据类型为 int32、int64 的 0-D Tensor。如果 shape 是 Tensor,则是数据类型为 int32、int64 的 1D Tensor。如果 mean 或者 std 是 Tensor,输出 Tensor 的形状和 mean 或者 std 相同(此时 shape 无效)。默认值为 None。

  • name (str,可选) - 具体用法请参见 Name,一般无需设置,默认值为 None。

返回

Tensor:符合正态分布(均值为 mean,标准差为 std 的正态随机分布)的随机 Tensor。

示例代码

>>> import paddle

>>> out1 = paddle.normal(shape=[2, 3])
>>> print(out1)
Tensor(shape=[2, 3], dtype=float32, place=Place(cpu), stop_gradient=True,
[[-0.85107994, -0.85490644, -1.35941815],
 [-0.55500370,  0.20964541,  2.24193954]])

>>> mean_tensor = paddle.to_tensor([1.0, 2.0, 3.0])
>>> out2 = paddle.normal(mean=mean_tensor)
>>> print(out2)
Tensor(shape=[3], dtype=float32, place=Place(cpu), stop_gradient=True,
[1.05411839, 3.71514320, 3.42665267])

>>> std_tensor = paddle.to_tensor([1.0, 2.0, 3.0])
>>> out3 = paddle.normal(mean=mean_tensor, std=std_tensor)
>>> print(out3)
Tensor(shape=[3], dtype=float32, place=Place(cpu), stop_gradient=True,
[0.48646951, 0.00815189, 3.74022293])

使用本API的教程文档