mindspore.nn.probability.bijector.Bijector

class mindspore.nn.probability.bijector.Bijector(is_constant_jacobian=False, is_injective=True, name=None, dtype=None, param=None)[源代码]

Bijector类。Bijector描述了一种随机变量的映射方法,可以通过一个已有的随机变量 \(X\) 和一个映射函数 \(g\) 生成一个新的随机变量 \(Y = g(X)\)

参数:

  • is_constant_jacobian (bool) - Bijector是否具有常数导数。默认值:False。

  • is_injective (bool) - Bijector是否为一对一映射。默认值:True。

  • name (str) - Bijector名称。默认值:None。

  • dtype (mindspore.dtype) - Bijector可以操作的分布的数据类型。默认值:None。

  • param (dict) - 用于初始化Bijector的参数。默认值:None。

Note

Bijector的 dtype 为None时,输入值必须是float类型,除此之外没有其他强制要求。

在初始化过程中,当 dtype 为None时,对参数的数据类型没有强制要求。

但所有参数都应具有相同的float类型,否则将引发TypeError。

具体来说,参数类型跟随输入值的数据类型,即当 dtype 为None时,Bijector的参数将被强制转换为与输入值相同的类型。

当指定了 dtype 时,参数和输入值的 dtype 必须相同。

当参数类型或输入值类型与 dtype 不相同时,将引发TypeError。只能使用mindspore的float数据类型来指定Bijector的 dtype

支持平台:

Ascend GPU

cast_param_by_value(value, para)[源代码]

将输入中的 para 的数据类型转换为与 value 相同的类型,一般由Bijector的子类用于基于输入对自身参数进行数据类型变化。

参数:

  • value (Tensor) - 输入数据。

  • para (Tensor) - Bijector参数。

construct(name, *args, **kwargs)[源代码]

重写Cell中的 construct

Note

支持的函数名称包括:’forward’、’inverse’、’forward_log_jacobian’、’inverse_log_jacobian’。

参数:

  • name (str) - 函数名称。

  • args (list) - 函数所需的位置参数列表。

  • kwargs (dict) - 函数所需的关键字参数字典。

forward(value, *args, **kwargs)[源代码]

正映射,计算输入随机变量 \(X = value\) 经过映射后的值 \(Y = g(value)\)

参数:

  • value (Tensor) - 输入随机变量的值。

  • args (list) - 函数所需的位置参数列表。

  • kwargs (dict) - 函数所需的关键字参数字典。

返回:

Tensor,输出随机变量的值。

forward_log_jacobian(value, *args, **kwargs)[源代码]

计算正映射导数的对数值,即 \(\log(dg(x) / dx)\)

参数:

  • value (Tensor) - 输入随机变量的值。

  • args (list) - 函数所需的位置参数列表。

  • kwargs (dict) - 函数所需的关键字参数字典。

返回:

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

inverse(value, *args, **kwargs)[源代码]

逆映射,计算输出随机变量 \(Y = value\) 时对应的输入随机变量的值 \(X = g^{-1}(value)\)

参数:

  • value (Tensor) - 输出随机变量的值。

  • args (list) - 函数所需的位置参数列表。

  • kwargs (dict) - 函数所需的关键字参数字典。

返回:

Tensor,输入随机变量的值。

inverse_log_jacobian(value, *args, **kwargs)[源代码]

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

参数:

  • value (Tensor) - 输出随机变量的值。

  • args (list) - 函数所需的位置参数列表。

  • kwargs (dict) - 函数所需的关键字参数字典。

返回:

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