mindspore.nn.probability.distribution.Distribution

class mindspore.nn.probability.distribution.Distribution(seed, dtype, name, param)[源代码]

所有分布的基类。

参数:
  • seed (int) - 采样时使用的种子。如果为None,则使用0。

  • dtype (mindspore.dtype) - 事件样例的类型。

  • name (str) - 分布的名称。

  • param (dict) - 用于初始化分布的参数。

Note

派生类必须重写 _mean_prob_log_prob 等操作。必填参数必须通过 argskwargs 传入,如 _probvaluedist_spec_args 作为可选参数可以用来制定新的分布参数。

每种分类都有自己的 dist_spec_args。例如正态分布的 dist_spec_argsmeansd, 而指数分布的 dist_spec_argsrate

所有方法都包含一个 dist_spec_args 作为可选参数。 传入 dist_spec_args 可以让该方法基于新的分布的参数值进行运算,但如此做不会改变原始分布的参数。

支持平台:

Ascend GPU

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

在给定值下计算累积分布函数(Cumulatuve Distribution Function, CDF)。

参数:
  • value (Tensor) - 要计算的值。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,累积分布函数的值。

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

重写Cell中的 construct

Note

支持的函数包括:’prob’、’log_prob’、’cdf’, ‘log_cdf’、’survival_function’、’log_survival’、’var’、 ‘sd’、’mode’、’mean’、’entropy’、’kl_loss’、’cross_entropy’、’sample’、’get_dist_args’、’get_dist_type’。

参数:
  • name (str) - 函数名称。

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

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

返回:

Tensor,name对应函数的值。

cross_entropy(dist, *args, **kwargs)[源代码]

计算分布a和b之间的交叉熵。

参数:
  • dist (str) - 分布的类型。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

Distribution b的 dist_spec_args 必须通过 argskwargs 传递给函数。传入Distribution a的 dist_spec_args 是可选的。

返回:

Tensor,交叉熵的值。

entropy(*args, **kwargs)[源代码]

计算熵。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,熵的值。

get_dist_args(*args, **kwargs)[源代码]

返回分布的参数列表。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

dist_spec_args 必须以列表或者字典的形式传入。传递给字类的参数的顺序应该与通过 _add_parameter 初始化默认参数的顺序相同。如果某个 dist_spec_args 为None,那么将返回默认值。

返回:

list[Tensor],参数列表。

get_dist_type()[源代码]

返回分布类型。

返回:

string,分布类型名字。

kl_loss(dist, *args, **kwargs)[源代码]

计算KL散度,即KL(a||b)。

参数:
  • dist (str) - 分布的类型。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

Distribution b的 dist_spec_args 必须通过 argskwargs 传递给函数。传入Distribution a的 dist_spec_args 是可选的。

返回:

Tensor,KL散度。

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

计算给定值对于的累积分布函数的对数。

参数:
  • value (Tensor) - 要计算的值。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,累积分布函数的对数。

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

计算给定值对应的概率的对数(pdf或pmf)。

参数:
  • value (Tensor) - 要计算的值。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,累积分布函数的对数。

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

计算给定值对应的生存函数的对数。

参数:
  • value (Tensor) - 要计算的值。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,生存函数的对数。

mean(*args, **kwargs)[源代码]

计算期望。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,概率分布的期望。

mode(*args, **kwargs)[源代码]

计算众数。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,概率分布的众数。

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

计算给定值下的概率。对于离散分布是计算概率质量函数(Probability Mass Function),而对于连续分布是计算概率密度函数(Probability Density Function)。

参数:
  • value (Tensor) - 要计算的值。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,概率值。

sample(*args, **kwargs)[源代码]

采样函数。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,根据概率分布采样的样本。

sd(*args, **kwargs)[源代码]

计算标准差。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,概率分布的标准差。

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

计算给定值对应的生存函数。

参数:
  • value (Tensor) - 要计算的值。

  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,生存函数的值。

var(*args, **kwargs)[源代码]

计算方差。

参数:
  • args (list) - 位置参数列表,具体需要的参数根据子类的实现确定。

  • kwargs (dict) - 关键字参数字典,具体需要的参数根据子类的实现确定。

Note

可以通过 argskwargs 传递其 dist_spec_args 来选择性地将Distribution传递给函数。

返回:

Tensor,概率分布的方差。