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_type数据类型来指定Bijector的 dtype 。
- 支持平台:
Ascend
GPU
- cast_param_by_value(value, para)[源代码]
将输入中的 para 的数据类型转换为与 value 相同的类型,一般由Bijector的子类用于基于输入对自身参数进行数据类型变化。
- 参数:
value (Tensor) - 输入数据。
para (Tensor) - Bijector参数。
- 返回:
Tensor,参数经过数据类型转换之后的值。
- construct(name, *args, **kwargs)[源代码]
重写Cell中的 construct 。
Note
支持的函数名称包括:’forward’、’inverse’、’forward_log_jacobian’、’inverse_log_jacobian’。
- 参数:
name (str) - 函数名称。
args (list) - 函数所需的位置参数列表。
kwargs (dict) - 函数所需的关键字参数字典。
- 返回:
Tensor,name对应函数的值。
- 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,正映射导数的对数值。