mindspore.nn.probability.bijector.PowerTransform
- class mindspore.nn.probability.bijector.PowerTransform(power=0.0, name='PowerTransform')[source]
PowerTransform 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’.
- Inputs and Outputs of APIs:
The accessible APIs of the PowerTransform bijector are defined in the base class, including:
forward
inverse
forward_log_jacobian
backward_log_jacobian
It should be notice that the inputs to APIs of the PowerTransform bijector should be always a tensor, with a shape that can be broadcasted to that of power. For more details of all APIs, including the inputs and outputs of the PowerTransform bijector, please refer to
mindspore.nn.probability.bijector.Bijector
, and examples below.- 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,)
- property power
Return the power parameter of the bijector.
- Output:
Tensor, the power parameter of the bijector.