mindspore.mint.bernoulli

查看源文件
mindspore.mint.bernoulli(input, *, generator=None)[源代码]

从伯努利分布中进行采样,并根据输入 input 中第 i 个元素给出的概率值将输出 output 中的第 i 元素随机设置为0或1。

\[output_{i} \sim Bernoulli(p=input_{i})\]

警告

这是一个实验性API,后续可能修改或删除。

参数:
  • input (Tensor) - 伯努利分布的输入张量,其中元素 input_{i} 代表对应输出元素 output_{i} 被设为 1 的概率,因此 input 中每个元素的数值范围都应当在 [0, 1] 之间。支持的数据类型: float16、float32、float64、bfloat16(仅Atlas A2训练系列产品支持)。

关键字参数:
  • generator (mindspore.Generator, 可选) - 伪随机数生成器。默认值: None ,使用默认伪随机数生成器。

返回:
  • output (Tensor) - 输出张量,其shape和数据类型与输入 input 相同。

异常:
  • TypeError - input 的数据类型不是float16、float32、float64、bfloat16之一。

  • ValueError - input 中任意一个元素的数值范围不在0到1之间。

支持平台:

Ascend

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor
>>> from mindspore import mint
>>> input_x = Tensor(np.ones((3, 3)), mindspore.float32)
>>> output = mint.bernoulli(input_x)
>>> print(output)
[[ 1. 1. 1.]
 [ 1. 1. 1.]
 [ 1. 1. 1.]]
>>> input_x = Tensor(np.zeros((3, 3)), mindspore.float32)
>>> output = mint.bernoulli(input_x)
>>> print(output)
[[ 0. 0. 0.]
 [ 0. 0. 0.]
 [ 0. 0. 0.]]