mindspore.nn.probability.bijector.GumbelCDF

class mindspore.nn.probability.bijector.GumbelCDF(loc=0.0, scale=1.0, name="GumbelCDF")[source]

GumbelCDF Bijector. This Bijector performs the operation:

\[Y = \exp(-\exp(\frac{-(X - loc)}{scale}))\]
Parameters
Supported Platforms:

Ascend GPU

Note

scale must be greater than zero. For inverse and inverse_log_jacobian, input should be in range of (0, 1). The dtype of loc and scale must be float. If loc, scale are passed in as numpy.ndarray or tensor, they have to have the same dtype otherwise an error will be raised.

Raises

TypeError – When the dtype of loc or scale is not float, and when the dtype of loc and scale is not same.

Examples

>>> import mindspore
>>> import mindspore.nn as nn
>>> import mindspore.nn.probability.bijector as msb
>>> from mindspore import Tensor
>>>
>>> # To initialize a GumbelCDF bijector of loc 1.0, and scale 2.0.
>>> gumbel_cdf = msb.GumbelCDF(1.0, 2.0)
>>> # To use a ScalarAffine bijector in a network.
>>> x = Tensor([1, 2, 3], dtype=mindspore.float32)
>>> y = Tensor([0.1, 0.2, 0.3], dtype=mindspore.float32)
>>> ans1 = gumbel_cdf.forward(x)
>>> print(ans1.shape)
(3,)
>>> ans2 = gumbel_cdf.inverse(y)
>>> print(ans2.shape)
(3,)
>>> ans3 = gumbel_cdf.forward_log_jacobian(x)
>>> print(ans3.shape)
(3,)
>>> ans4 = gumbel_cdf.inverse_log_jacobian(y)
>>> print(ans4.shape)
(3,)