mindspore.ops.bernoulli

mindspore.ops.bernoulli(input, p=0.5, seed=None)[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
  • input (Tensor) – Input Tensor. Data type must be int8, uint8, int16, int32, int64, bool, float32 or float64.

  • p (Union[Tensor, float], optional) – Success probability, representing the probability of setting 1 for the corresponding position of the current Tensor. It has the same shape as input, the value of p must be in the range [0, 1]. Default: 0.5 .

  • seed (Union[int, None], optional) – The seed value for random generating. The value of seed must be a positive integer. Default: None , means using the current timestamp.

Returns

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

Raises
  • TypeError – If dtype of input 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 or None.

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

  • ValueError – If seed is less than 0.

  • ValueError – If p is a Tensor but has different shape than input.

Supported Platforms:

GPU CPU

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]