mindspore.nn.probability.bijector.PowerTransform
- class mindspore.nn.probability.bijector.PowerTransform(power=0.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
power (float, list, numpy.ndarray, Tensor) – The scale factor. Default: 0.
name (str) – The name of the bijector. Default: ‘PowerTransform’.
- 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,)