mindspore.Tensor.bernoulli

Tensor.bernoulli(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
  • 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 Tensor 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
>>> input_x = Tensor(np.array([1, 2, 3]), mindspore.int8)
>>> output = input_x.bernoulli(p=1.0)
>>> print(output)
[1 1 1]
>>> input_p = Tensor(np.array([0.0, 1.0, 1.0]), mindspore.float32)
>>> output = input_x.bernoulli(input_p)
>>> print(output)
[0 1 1]