mindspore.nn.probability.bijector.PowerTransform
- class mindspore.nn.probability.bijector.PowerTransform(power=0.0, name='PowerTransform')[源代码]
乘方Bijector(PowerTransform Bijector)。 此Bijector对应的映射函数为:
\[Y = g(X) = (1 + X * c)^{1 / c}, X >= -1 / c\]其中c >= 0。
PowerTransform Bijector将输入从 [-1/c, inf] 映射到 [0, inf] 。
当 c=0 时,此Bijector等于
mindspore.nn.probability.bijector.Exp
Bijector。参数:
power (float, list, numpy.ndarray, Tensor) - 比例因子。默认值:0。
name (str) - Bijector名称。默认值:’PowerTransform’。
Note
power 中元素的数据类型必须为float。
异常:
ValueError - power 中元素小于0或静态未知。
TypeError - power 中元素的数据类型不是float。
- 支持平台:
Ascend
GPU
样例:
>>> 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
返回指数。
返回:
Tensor,Bijector的指数。
- forward(value)
正映射,计算输入随机变量 \(X = value\) 经过映射后的值 \(Y = g(value)\)。
参数:
value (Tensor) - 输入随机变量的值。
返回:
Tensor,输入随机变量的值。
- forward_log_jacobian(value)
计算正映射导数的对数值,即 \(\log(dg(x) / dx)\)。
参数:
value (Tensor) - 输入随机变量的值。
返回:
Tensor,正映射导数的对数值。
- inverse(value)
正映射,计算输出随机变量 \(Y = value\) 时对应的输入随机变量的值 \(X = g(value)\)。
参数:
value (Tensor) - 输出随机变量的值。
返回:
Tensor,输出随机变量的值。
- inverse_log_jacobian(value)
计算逆映射导数的对数值,即 \(\log(dg^{-1}(x) / dx)\)。
参数:
value (Tensor) - 输出随机变量的值。
返回:
Tensor,逆映射导数的对数值。