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
inverse_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:
AscendGPU
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 index.
Returns
Tensor, the power index.
- forward(value)
forward mapping, compute the value after mapping as \(Y = g(X)\).
Parameters
value (Tensor) - the value to compute.
Returns
Tensor, the value to compute.
- forward_log_jacobian(value)
compute the log value after mapping, namely \(\log(dg(x) / dx)\).
Parameters
value (Tensor) - the value to compute.
Returns
Tensor, the log value of forward mapping.
- inverse(value)
Inverse mapping, compute the value after inverse mapping as \(X = g(value)\).
Parameters
value (Tensor) - the value of output after mapping.
Returns
Tensor, the value of output after mapping.
- inverse_log_jacobian(value)
Compute the log value of the inverse mapping, namely \(\log(dg^{-1}(x) / dx)\).
Parameters
value (Tensor) - the value of output after mapping.
Returns
Tensor, the log value of the inverse mapping.