mindspore.nn.probability.bijector.Invert

class mindspore.nn.probability.bijector.Invert(bijector, name='')[源代码]

逆映射Bijector(Invert Bijector)。 计算输入Bijector的逆映射。如果正向映射(下面的 bijector 输入)对应的映射函数为 \(Y = g(X)\) ,那么对应的逆映射Bijector的映射函数为 \(Y = h(X) = g^{-1}(X)\)

参数:

  • bijector (Bijector) - 基础Bijector(Base Bijector)。

  • name (str) - Bijector名称。默认值:””。当name设置为””时,它实际上是’Invert’ + Bijector.name。

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> import mindspore
>>> import mindspore.nn as nn
>>> import mindspore.nn.probability.bijector as msb
>>> from mindspore import Tensor
>>> class Net(nn.Cell):
...     def __init__(self):
...         super(Net, self).__init__()
...         self.origin = msb.ScalarAffine(scale=2.0, shift=1.0)
...         self.invert = msb.Invert(self.origin)
...
...     def construct(self, x_):
...         return self.invert.forward(x_)
>>> forward = Net()
>>> x = np.array([2.0, 3.0, 4.0, 5.0]).astype(np.float32)
>>> ans = forward(Tensor(x, dtype=mindspore.float32))
>>> print(ans.shape)
(4,)
property bijector

Bijector类,返回基础Bijector。

forward(x)[源代码]

计算基础Bijector的逆映射,即 \(Y = h(X) = g^{-1}(X)\)

参数:

  • x (Tensor) - 基础Bijector的输出随机变量的值。

返回:

Tensor,基础Bijector的输入随机变量的值。

forward_log_jacobian(x)[源代码]

计算基础Bijector的逆映射导数的对数值,即 \(\log dg^{-1}(x) / dx\)

参数:

  • x (Tensor) - 基础Bijector的输出随机变量的值。

返回:

Tensor,基类逆映射导数的对数值。

inverse(y)[源代码]

计算基础Bijector的正映射,即 \(Y = g(X)\)

参数:

  • y (Tensor) - 基础Bijector的输入随机变量的值。

返回:

Tensor,基础Bijector的输出随机变量的值。

inverse_log_jacobian(y)[源代码]

计算基础Bijector的正映射导数的对数,即 \(Y = \log dg(x) / dx\)

参数:

  • y (Tensor) - 基础Bijector的输入随机变量的值。

返回:

Tensor,基类正映射导数的对数值。