normal¶
返回符合正态分布(均值为 mean
,标准差为 std
的正态随机分布)的随机 Tensor。
如果 mean
是 Tensor,则输出 Tensor 和 mean
具有相同的形状和数据类型。 如果 mean
不是 Tensor,且 std
是 Tensor,则输出 Tensor 和 std
具有相同的形状和数据类型。 如果 mean
和 std
都不是 Tensor,则输出 Tensor 的形状为 shape
,数据类型为 float32。
如果 mean
和 std
都是 Tensor,则 mean
和 std
的元素个数应该相同。
参数¶
mean (float|Tensor,可选) - 输出 Tensor 的正态分布的平均值。如果
mean
是 float,则表示输出 Tensor 中所有元素的正态分布的平均值。如果mean
是 Tensor (支持的数据类型为 float32、float64),则表示输出 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])