mindspore.ops.bernoulli

mindspore.ops.bernoulli(x, p=0.5, seed=- 1)[source]

Randomly set the elements of output to 0 or 1 with the probability of P which follows the Bernoulli distribution.

\[out_{i} \sim Bernoulli(p_{i})\]
Parameters
  • x (Tensor) – Tensor of shape \((N,*)\) where \(*\) means, any number of additional dimensions. Data type must be int8, uint8, int16, int32, int64, bool, float32 or float64.

  • p (Union[Tensor, float], optional) – The shape of p need to be broadcast. Data type must be float32 or float64. The elements of p represent the probability of setting 1 for the corresponding broadcast position of the current Tensor. The value of p must be in the range [0, 1]. Default: 0.5.

  • seed (int, optional) – The seed value for random generating. The value of seed must be -1 or a positive integer. Default: -1, which means using the current timestamp.

Returns

output (Tensor), with the same shape and type as x.

Raises
  • TypeError – If dtype of x is not one of: int8, uint8, int16, int32, int64, bool, float32, float64.

  • TypeError – If dtype of p is not one of: float32, float64.

  • TypeError – If dtype of seed is not int.

  • ValueError – If p is not in range [0, 1].

  • ValueError – If seed is less than 0 and not -1.

Supported Platforms:

GPU

Examples

>>> 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]