mindspore.ops.bernoulli
- mindspore.ops.bernoulli(x, p=0.5, seed=- 1)[源代码]
以p的概率随机将输出的元素设置为0或1,服从伯努利分布。
\[out_{i} \sim Bernoulli(p_{i})\]参数:
x (Tensor) - 任意维度的Tensor,其数据类型为int8、uint8、int16、int32、int64、bool、float32或float64。
p (Union[Tensor, float], optional) - shape需要可以被广播到当前Tensor。其数据类型为float32或float64。p 中每个值代表输出Tensor中对应广播位置为1的概率,数值范围在0到1之间。默认值:0.5。
seed (int, optional) - 随机种子,用于生成随机数,数值范围是-1或正整数。默认值:-1,代表取当前时间戳。
返回:
output (Tensor) - shape和数据类型与 x 相同。
异常:
TypeError - x 的数据类型不在int8, uint8, int16, int32,int64,bool, float32和float64中。
TypeError - p 的数据类型既不是float32也不是float64。
TypeError - seed 不是int。
ValueError - seed 是负数且不为-1。
ValueError - p 数值范围不在0到1之间。
- 支持平台:
GPU
样例:
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor >>> import mindspore.ops as ops >>> input_x = Tensor(np.array([1, 2, 3]), mindspore.int8) >>> output = ops.bernoulli(input_x, p=1.0) >>> print(output) [1 1 1] >>> input_p = Tensor(np.array([0.0, 1.0, 1.0]), mindspore.float32) >>> output = ops.bernoulli(input_x, input_p) >>> print(output) [0 1 1]