mindspore.nn.probability.bijector.PowerTransform

class mindspore.nn.probability.bijector.PowerTransform(power=0., name="PowerTransform")[source]

Power Bijector. This Bijector performs the operation:

\[Y = g(X) = (1 + X * c)^{1 / c}, X >= -1 / c\]

where c >= 0 is the power.

The power transform maps inputs from [-1/c, inf] to [0, inf].

This Bijector is equivalent to the Exp bijector when c=0.

Parameters
Supported Platforms:

Ascend GPU

Note

The dtype of power must be float.

Raises
  • ValueError – When power is less than 0 or is not known statically.

  • TypeError – When the dtype of power is not float.

Examples

>>> import mindspore
>>> import mindspore.nn as nn
>>> import mindspore.nn.probability.bijector as msb
>>> from mindspore import Tensor
>>> # To initialize a PowerTransform bijector of power 0.5.
>>> powertransform = msb.PowerTransform(0.5)
>>> value = Tensor([1, 2, 3], dtype=mindspore.float32)
>>> ans1 = powertransform.forward(value)
>>> print(ans1.shape)
(3,)
>>> ans2 = powertransform.inverse(value)
>>> print(ans2.shape)
(3,)
>>> ans3 = powertransform.forward_log_jacobian(value)
>>> print(ans3.shape)
(3,)
>>> ans4 = powertransform.inverse_log_jacobian(value)
>>> print(ans4.shape)
(3,)