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
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 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.