From ce85cba866e0cc902f21ec94935b1c62f78fba39 Mon Sep 17 00:00:00 2001 From: Bingya Weng Date: Fri, 26 Nov 2021 11:50:53 +0800 Subject: [PATCH] add chinese api of probability --- ...spore.nn.probability.bijector.Bijector.txt | 88 +++++++++ .../mindspore.nn.probability.bijector.Exp.txt | 35 ++++ ...pore.nn.probability.bijector.GumbelCDF.txt | 49 +++++ ...ndspore.nn.probability.bijector.Invert.txt | 66 +++++++ ...nn.probability.bijector.PowerTransform.txt | 49 +++++ ...e.nn.probability.bijector.ScalarAffine.txt | 46 +++++ ...spore.nn.probability.bijector.Softplus.txt | 46 +++++ ....nn.probability.distribution.Bernoulli.txt | 102 ++++++++++ ...spore.nn.probability.distribution.Beta.txt | 116 +++++++++++ ...n.probability.distribution.Categorical.txt | 83 ++++++++ ...ore.nn.probability.distribution.Cauchy.txt | 114 +++++++++++ ....probability.distribution.Distribution.txt | 184 ++++++++++++++++++ ...n.probability.distribution.Exponential.txt | 100 ++++++++++ ...pore.nn.probability.distribution.Gamma.txt | 114 +++++++++++ ....nn.probability.distribution.Geometric.txt | 103 ++++++++++ ...ore.nn.probability.distribution.Gumbel.txt | 45 +++++ ....nn.probability.distribution.LogNormal.txt | 46 +++++ ...e.nn.probability.distribution.Logistic.txt | 97 +++++++++ ...ore.nn.probability.distribution.Normal.txt | 103 ++++++++++ ...re.nn.probability.distribution.Poisson.txt | 85 ++++++++ ...y.distribution.TransformedDistribution.txt | 47 +++++ ...re.nn.probability.distribution.Uniform.txt | 115 +++++++++++ .../probability/mindspore.nn.probability.txt | 3 + 23 files changed, 1836 insertions(+) create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Bijector.txt create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Exp.txt create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.GumbelCDF.txt create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Invert.txt create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.PowerTransform.txt create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.ScalarAffine.txt create mode 100644 docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Softplus.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Bernoulli.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Beta.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Categorical.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Cauchy.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Distribution.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Exponential.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gamma.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Geometric.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gumbel.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.LogNormal.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Logistic.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Normal.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Poisson.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.TransformedDistribution.txt create mode 100644 docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Uniform.txt create mode 100644 docs/api/api_python/nn/probability/mindspore.nn.probability.txt diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Bijector.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Bijector.txt new file mode 100644 index 00000000000..ca5621202bb --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Bijector.txt @@ -0,0 +1,88 @@ +Class mindspore.nn.probability.bijector.Bijector(is_constant_jacobian=False, is_injective=True, name=None, dtype=None, param=None) + + Bijector类。 + + 参数: + is_constant_jacobian (bool):Bijector是否具有常数导数。默认值:False。 + is_injective (bool):Bijector是否为一对一映射。默认值:True。 + name (str):Bijector名称。默认值:None。 + dtype (mindspore.dtype):Bijector可以操作的分布的数据类型。默认值:None。 + param (dict):用于初始化Bijector的参数。默认值:None。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + Bijector的`dtype`为None时,输入值必须是float类型,除此之外没有其他强制要求。在初始化过程中,当`dtype`为None时,对参数的数据类型没有强制要求。但所有参数都应具有相同的float类型,否则将引发TypeError。 + 具体来说,参数类型跟随输入值的数据类型,即当`dtype`为None时,Bijector的参数将被强制转换为与输入值相同的类型。 + 当指定了`dtype`时,参数和输入值的`dtype`必须相同。 + 当参数类型或输入值类型与`dtype`不相同时,将引发TypeError。只能使用mindspore的float数据类型来指定Bijector的`dtype`。 + + +cast_param_by_value(value, para) + + 将Bijector的参数para的数据类型转换为与value相同的类型。 + 参数: + value (Tensor):输入数据。 + para (Tensor):Bijector参数。 + + +construct(name, *args, **kwargs) + + 重写Cell中的`construct`。 + + 注: + 支持的函数包括: + 'forward'、'inverse'、'forward_log_jacobian'、'inverse_log_jacobian'。 + + 参数: + name (str):函数名称。 + *args (list):函数所需的位置参数列表。 + **kwargs (dict):函数所需的关键字参数字典。 + + +forward(value, *args, **kwargs) + + 正变换:将输入值转换为另一个分布。 + + 参数: + value (Tensor):输入。 + *args (list):函数所需的位置参数列表。 + **kwargs (dict):函数所需的关键字参数字典。 + + +forward_log_jacobian(value, *args, **kwargs) + + 对正变换导数取对数。 + + 参数: + value (Tensor):输入。 + *args (list):函数所需的位置参数列表。 + **kwargs (dict):函数所需的关键字参数字典。 + + +inverse(value, *args, **kwargs) + + 逆变换:将输入值转换回原始分布。 + + 参数: + value (Tensor):输入。 + *args (list):函数所需的位置参数列表。 + **kwargs (dict):函数所需的关键字参数字典。 + + +inverse_log_jacobian(value, *args, **kwargs) + + 对逆变换的导数取对数。 + + 参数: + value (Tensor):输入。 + *args (list):函数所需的位置参数列表。 + **kwargs (dict):函数所需的关键字参数字典。 + + +shape_mapping(shape) +映射shape。 + +参数: + shape (tuple):Tensor的形状。 diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Exp.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Exp.txt new file mode 100644 index 00000000000..457ce353e53 --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Exp.txt @@ -0,0 +1,35 @@ +Class mindspore.nn.probability.bijector.Exp(name='Exp') + + 指数Bijector(Exponential Bijector)。 + 此Bijector执行如下操作: + + .. math:: + Y = \exp(x). + + 参数: + name (str):Bijector名称。默认值:'Exp'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> from mindspore import Tensor + >>> + >>> # 初始化指数Bijector。 + >>> exp_bijector = nn.probability.bijector.Exp() + >>> value = Tensor([1, 2, 3], dtype=mindspore.float32) + >>> ans1 = exp_bijector.forward(value) + >>> print(ans1.shape) + (3,) + >>> ans2 = exp_bijector.inverse(value) + >>> print(ans2.shape) + (3,) + >>> ans3 = exp_bijector.forward_log_jacobian(value) + >>> print(ans3.shape) + (3,) + >>> ans4 = exp_bijector.inverse_log_jacobian(value) + >>> print(ans4.shape) + (3,) + diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.GumbelCDF.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.GumbelCDF.txt new file mode 100644 index 00000000000..b19bc2b7fb3 --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.GumbelCDF.txt @@ -0,0 +1,49 @@ +Class mindspore.nn.probability.bijector.GumbelCDF(loc=0.0, scale=1.0, name='GumbelCDF') + + GumbelCDF Bijector。 + 此Bijector执行如下操作: + + .. math:: + Y = \exp(-\exp(\frac{-(X - loc)}{scale})) + + 参数: + loc (float, list, numpy.ndarray, Tensor):位移因子,即上述公式中的loc。默认值:0.0。 + scale (float, list, numpy.ndarray, Tensor):比例因子,即上述公式中的scale。默认值:1.0。 + name (str):Bijector名称。默认值:'GumbelCDF'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `scale`必须大于零。 + 对于`inverse`和`inverse_log_jacobian`,输入应在(0, 1)范围内。 + `loc`和`scale`的数据类型必须为float。 + 如果`loc`、`scale`作为numpy.ndarray或Tensor传入,则它们必须具有相同的数据类型,否则将引发错误。 + + 异常: + TypeError:`loc`或`scale`的数据类型不为float,或`loc`和`scale`的数据类型不相同。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.bijector as msb + >>> from mindspore import Tensor + >>> + >>> # 初始化GumbelCDF Bijector,loc设置为1.0和scale设置为2.0。 + >>> gumbel_cdf = msb.GumbelCDF(1.0, 2.0) + >>> # 在网络中使用ScalarAffinebijector。 + >>> x = Tensor([1, 2, 3], dtype=mindspore.float32) + >>> y = Tensor([0.1, 0.2, 0.3], dtype=mindspore.float32) + >>> ans1 = gumbel_cdf.forward(x) + >>> print(ans1.shape) + (3,) + >>> ans2 = gumbel_cdf.inverse(y) + >>> print(ans2.shape) + (3,) + >>> ans3 = gumbel_cdf.forward_log_jacobian(x) + >>> print(ans3.shape) + (3,) + >>> ans4 = gumbel_cdf.inverse_log_jacobian(y) + >>> print(ans4.shape) + (3,) + diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Invert.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Invert.txt new file mode 100644 index 00000000000..d22f0735064 --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Invert.txt @@ -0,0 +1,66 @@ +Class mindspore.nn.probability.bijector.Invert(bijector, name='') + + 反转Bijector(Invert Bijector),计算输入Bijector的反函数。 + + 参数: + Bijector (Bijector):基础Bijector(Base Bijector)。 + name (str):Bijector名称。默认值:""。当name设置为""时,它实际上是'Invert' + Bijector.name。 + + 支持平台: + ``Ascend`` ``GPU`` + + 示例: + >>> 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,) + + +bijector + 返回基础Bijector。 + +forward(x) + + 逆变换:将输入值转换回原始分布。 + + 参数: + x (Tensor):输入。 + + +forward_log_jacobian(x) + + 逆变换导数的对数。 + + 参数: + x (Tensor):输入。 + + +inverse(y) + + 正变换:将输入值转换为另一个分布。 + + 参数: + y (Tensor):输入。 + + +inverse_log_jacobian(y) + + 正变换导数的对数。 + + 参数: + y (Tensor):输入。 + diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.PowerTransform.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.PowerTransform.txt new file mode 100644 index 00000000000..3134c741280 --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.PowerTransform.txt @@ -0,0 +1,49 @@ +Class mindspore.nn.probability.bijector.PowerTransform(power=0.0, name='PowerTransform') + + 乘方Bijector(Power Bijector)。 + 此Bijector执行如下操作: + + .. math:: + Y = g(X) = (1 + X * c)^{1 / c}, X >= -1 / c + + 其中幂c >= 0。 + + Power Bijector将输入从`[-1/c, inf]`映射到`[0, inf]`。 + + 当`c=0`时,此Bijector等于Exp Bijector。 + + 参数: + power (float, list, numpy.ndarray, Tensor):比例因子。默认值:0。 + name (str):Bijector名称。默认值:'PowerTransform'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `power`的数据类型必须为float。 + + 异常: + ValueError:`power`小于0或静态未知。 + TypeError:`power`的数据类型不是float。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.bijector as msb + >>> from mindspore import Tensor + >>> # 初始化PowerTransform Bijector。 + >>> 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,) + diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.ScalarAffine.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.ScalarAffine.txt new file mode 100644 index 00000000000..d72b99c24dd --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.ScalarAffine.txt @@ -0,0 +1,46 @@ +Class mindspore.nn.probability.bijector.ScalarAffine(scale=1.0, shift=0.0, name='ScalarAffine') + + 标量仿射Bijector(Scalar Affine Bijector)。 + 此Bijector执行如下操作: + + .. math:: + Y = a * X + b + + 其中a是比例因子,b是移位因子。 + + 参数: + scale (float, list, numpy.ndarray, Tensor):比例因子。默认值:1.0。 + shift (float, list, numpy.ndarray, Tensor):移位因子。默认值:0.0。 + name (str):Bijector名称。默认值:'ScalarAffine'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `shift`和`scale`的数据类型必须为float。 + 如果`shift`、`scale`作为numpy.ndarray或Tensor传入,则它们必须具有相同的数据类型,否则将引发错误。 + + 异常: + TypeError:`shift`或`scale`的数据类型不为float,或`shift`和`scale`的数据类型不相同。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> from mindspore import Tensor + >>> + >>> # 初始化ScalarAffine Bijector,scale设置为1.0,shift设置为2.0。 + >>> scalaraffine = nn.probability.bijector.ScalarAffine(1.0, 2.0) + >>> value = Tensor([1, 2, 3], dtype=mindspore.float32) + >>> ans1 = scalaraffine.forward(value) + >>> print(ans1.shape) + (3,) + >>> ans2 = scalaraffine.inverse(value) + >>> print(ans2.shape) + (3,) + >>> ans3 = scalaraffine.forward_log_jacobian(value) + >>> print(ans3.shape) + () + >>> ans4 = scalaraffine.inverse_log_jacobian(value) + >>> print(ans4.shape) + () + diff --git a/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Softplus.txt b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Softplus.txt new file mode 100644 index 00000000000..ce85b0a33bd --- /dev/null +++ b/docs/api/api_python/nn/probability/bijector/mindspore.nn.probability.bijector.Softplus.txt @@ -0,0 +1,46 @@ +Class mindspore.nn.probability.bijector.Softplus(sharpness=1.0, name='Softplus') + + Softplus Bijector。 + 此Bijector执行如下操作: + + .. math:: + Y = \frac{\log(1 + e ^ {kX})}{k} + + 其中k是锐度因子。 + + 参数: + sharpness (float, list, numpy.ndarray, Tensor):锐度因子,上述公式中的k。默认值:1.0。 + name (str):Bijector名称。默认值:'Softplus'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `sharpness`的数据类型必须为float。 + + 异常: + TypeError:sharpness的数据类型不为float。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.bijector as msb + >>> from mindspore import Tensor + >>> + >>> # 初始化Softplus Bijector,sharpness设置为2.0。 + >>> softplus = msb.Softplus(2.0) + >>> # 在网络中使用ScalarAffine Bijector。 + >>> value = Tensor([1, 2, 3], dtype=mindspore.float32) + >>> ans1 = softplus.forward(value) + >>> print(ans1.shape) + (3,) + >>> ans2 = softplus.inverse(value) + >>> print(ans2.shape) + (3,) + >>> ans3 = softplus.forward_log_jacobian(value) + >>> print(ans3.shape) + (3,) + >>> ans4 = softplus.inverse_log_jacobian(value) + >>> print(ans4.shape) + (3,) + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Bernoulli.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Bernoulli.txt new file mode 100644 index 00000000000..b72bf1d9e29 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Bernoulli.txt @@ -0,0 +1,102 @@ +Class mindspore.nn.probability.distribution.Bernoulli(probs=None, seed=None, dtype=mindspore.int32, name='Bernoulli') + + 伯努利分布(Bernoulli Distribution)。 + + 参数: + probs (float, list, numpy.ndarray, Tensor):结果是1的概率。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):采样结果的数据类型。默认值:mindspore.int32. + name (str):分布的名称。默认值:'Bernoulli'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `probs`必须是合适的概率(0>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化伯努利分布,probs设置为1。 + >>> b1 = msd.Bernoulli(0.5, dtype=mindspore.int32) + >>> # 伯努利分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`probs`必须在函数调用过程中通过参数传入。 + >>> b2 = msd.Bernoulli(dtype=mindspore.int32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1, 0, 1], dtype=mindspore.int32) + >>> probs_a = Tensor([0.6], dtype=mindspore.float32) + >>> probs_b = Tensor([0.2, 0.3, 0.4], dtype=mindspore.float32) + >>> + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,它们具有相同的参数,如下所示。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # probs1 (Tensor):成功的概率。默认值:self.probs. + >>> # 下面是调用`prob`的示例(通过将`prob`替换为函数的名称,可以对其他概率函数进行类似的调用): + >>> ans = b1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 评估关于分布b的`prob`。 + >>> ans = b1.prob(value, probs_b) + >>> print(ans.shape) + (3,) + >>> # `probs`必须在函数调用期间传入。 + >>> ans = b2.prob(value, probs_a) + >>> print(ans.shape) + (3,) + >>> + >>> # 函数`mean`、`sd`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # probs1 (Tensor):成功的概率。默认值:self.probs. + >>> # 下面是调用`mean的`示例。`sd`、`var`和`entropy`与`mean`类似。 + >>> ans = b1.mean() # return 0.5 + >>> print(ans.shape) + () + >>> ans = b1.mean(probs_b) # return probs_b + >>> print(ans.shape) + (3,) + >>> # `probs`必须在函数调用期间传入。 + >>> ans = b2.mean(probs_a) + >>> print(ans.shape) + (1,) + >>> + >>> # `kl_loss`和`cross_entropy`的接口如下: + >>> # 参数: + >>> # dist (str):分布的名称。仅支持'Bernoulli'。 + >>> # probs1_b (Tensor):分布b成功的概率。 + >>> # probs1_a (Tensor):分布a成功的概率。默认值:self.probs. + >>> # 下面是调用kl_loss的示例。`cross_entropy`也类似。 + >>> ans = b1.kl_loss('Bernoulli', probs_b) + >>> print(ans.shape) + (3,) + >>> ans = b1.kl_loss('Bernoulli', probs_b, probs_a) + >>> print(ans.shape) + (3,) + >>> # 必须传入额外的`probs_a`。 + >>> ans = b2.kl_loss('Bernoulli', probs_b, probs_a) + >>> print(ans.shape) + (3,) + >>> + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:()。 + >>> # probs1 (Tensor):成功的概率。默认值:self.probs. + >>> ans = b1.sample() + >>> print(ans.shape) + () + >>> ans = b1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = b1.sample((2,3), probs_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = b2.sample((2,3), probs_a) + >>> print(ans.shape) + (2, 3, 1) + + +probs + + 返回结果为1的概率。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Beta.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Beta.txt new file mode 100644 index 00000000000..b8b73b4c837 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Beta.txt @@ -0,0 +1,116 @@ +Class mindspore.nn.probability.distribution.Beta(concentration1=None, concentration0=None, seed=None, dtype=mindspore.float32, name='Beta') + + 贝塔分布(Beta Distribution)。 + + 参数: + concentration1 (list, numpy.ndarray, Tensor):贝塔分布的alpha。 + concentration0 (list, numpy.ndarray, Tensor):贝塔分布的beta。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):采样结果的数据类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Beta'。 + + 支持平台: + ``Ascend`` + + 注: + `concentration1`和`concentration0`必须大于零。 + `dtype`必须是float,因为贝塔分布是连续的。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> + >>> # 初始化concentration1为3.0和concentration0为4.0的贝塔分布。 + >>> b1 = msd.Beta([3.0], [4.0], dtype=mindspore.float32) + >>> + >>> # Beta分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`concentration1`和`concentration0`必须通过参数传入。 + >>> b2 = msd.Beta(dtype=mindspore.float32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([0.1, 0.5, 0.8], dtype=mindspore.float32) + >>> c1_a = Tensor([2.0], dtype=mindspore.float32) + >>> c0_a = Tensor([2.0, 2.0, 2.0], dtype=mindspore.float32) + >>> c1_b = Tensor([1.0], dtype=mindspore.float32) + >>> c0_b = Tensor([1.0, 1.5, 2.0], dtype=mindspore.float32) + >>> + >>> # 公共接口对应的概率函数的私有接口(包括`prob`和`log_prob`)的参数相同,如下所示。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # concentration1 (Tensor):分布的concentration1。默认值:self._concentration1。 + >>> # concentration0 (Tensor):分布的concentration0。默认值:self._concentration0。 + >>> # 下面是`prob`的示例(通过将'prob'替换为函数的名称,可以对其他概率函数进行类似的调用): + >>> ans = b1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = b1.prob(value, concentration1_b, concentration0_b) + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`concentration1`和`concentration0` + >>> ans = b2.prob(value, concentration1=c1_a, concentration0=c0_a) + >>> print(ans.shape) + (3,) + >>> + >>> # 函数`mean`、`sd`、`mode`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # concentration1 (Tensor):分布的concentration1。默认值:self._concentration1。 + >>> # concentration0 (Tensor):分布的concentration0。默认值:self._concentration0。 + >>> # 下面是调研`mean`的示例(`sd`、`mode`、`var`和`entropy`的示例与`mean`相似): + >>> ans = b1.mean() + >>> print(ans.shape) + (1,) + >>> ans = b1.mean(concentration1=c1_b, concentration0=c0_b) + >>> print(ans.shape) + (3,) + >>> # `concentration1`和`concentration0`必须在函数调用期间传入。 + >>> ans = b2.mean(concentration1=c1_a, concentration0=c0_a) + >>> print(ans.shape) + (3,) + >>> + >>> # 'kl_loss'和'cross_entropy'的接口相同: + >>> # 参数: + >>> # dist (str):分布的类型。仅支持"Beta"。 + >>> # concentration1_b (Tensor):分布b的concentration1。 + >>> # concentration0_b (Tensor):分布b的concentration0。 + >>> # concentration1_a (Tensor):分布a的concentration1。 + >>> # 默认值:self._concentration1。 + >>> # concentration0_a (Tensor):分布a的concentration0。 + >>> # 默认值:self._concentration0。 + >>> # 下面是`kl_loss`示例(`cross_entropy`也类似): + >>> ans = b1.kl_loss('Beta', concentration1_b=c1_b, concentration0_b=c0_b) + >>> print(ans.shape) + (3,) + >>> ans = b1.kl_loss('Beta', concentration1_b=c1_b, concentration0_b=c0_b, concentration1_a=c1_a, concentration0_a=c0_a) + >>> print(ans.shape) + (3,) + >>> + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # concentration1 (Tensor):分布的concentration1。默认值:self._concentration1。 + >>> # concentration0 (Tensor):分布的concentration0。默认值:self._concentration0。 + >>> ans = b1.sample() + >>> print(ans.shape) + (1,) + >>> ans = b1.sample((2,3)) + >>> print(ans.shape) + (2, 3, 1) + >>> ans = b1.sample((2,3), concentration1=c1_b, concentration0=c0_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = b2.sample((2,3), concentration1=c1_a, concentration0=c0_a) + >>> print(ans.shape) + (2, 3, 3) + + +concentration0 + + 返回concentration0(也称为贝塔分布的beta)。 + + +concentration1 + + 返回concentration1(也称为贝塔分布的alpha)。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Categorical.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Categorical.txt new file mode 100644 index 00000000000..31188ad8c51 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Categorical.txt @@ -0,0 +1,83 @@ +Class mindspore.nn.probability.distribution.Categorical(probs=None, seed=None, dtype=mindspore.int32, name='Categorical') + + 分类分布。 + + 参数: + probs (Tensor, list, numpy.ndarray):事件概率。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.int32. + name (str):分布的名称。默认值:Categorical。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `probs`的秩必须至少为1,值是合适的概率,并且总和为1。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化probs为[0.2, 0.8]的类别分布。 + >>> ca1 = msd.Categorical(probs=[0.2, 0.8], dtype=mindspore.int32) + >>> # 类别分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`probs`必须在函数调用过程中通过参数传入。 + >>> ca2 = msd.Categorical(dtype=mindspore.int32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1, 0], dtype=mindspore.int32) + >>> probs_a = Tensor([0.5, 0.5], dtype=mindspore.float32) + >>> probs_b = Tensor([0.35, 0.65], dtype=mindspore.float32) + >>> # 公共接口所对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,如下所示。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # probs (Tensor):事件概率。默认值:self.probs. + >>> # `prob`示例。 + >>> # 通过将`prob`替换为函数的名称,可以对其他概率函数进行类似的调用。 + >>> ans = ca1.prob(value) + >>> print(ans.shape) + (2,) + >>> # 评估关于分布b的`prob`。 + >>> ans = ca1.prob(value, probs_b) + >>> print(ans.shape) + (2,) + >>> # `probs`必须在函数调用期间传入。 + >>> ans = ca2.prob(value, probs_a) + >>> print(ans.shape) + (2,) + >>> # 函数`mean`、`sd`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # probs (Tensor):事件概率。默认值:self.probs. + >>> # `mean`示例。`sd`、`var`和`entropy`是相似的。 + >>> ans = ca1.mean() # return 0.8 + >>> print(ans.shape) + (1,) + >>> ans = ca1.mean(probs_b) + >>> print(ans.shape) + (1,) + >>> # `probs`必须在函数调用期间传入。 + >>> ans = ca2.mean(probs_a) + >>> print(ans.shape) + (1,) + >>> # `kl_loss`和`cross_entropy`的接口如下: + >>> # 参数: + >>> # dist (str):分布的名称。仅支持'Categorical'。 + >>> # probs_b (Tensor):分布b的事件概率。 + >>> # probs (Tensor):分布a的事件概率。默认值:self.probs. + >>> # kl_loss示例。`cross_entropy`也类似。 + >>> ans = ca1.kl_loss('Categorical', probs_b) + >>> print(ans.shape) + () + >>> ans = ca1.kl_loss('Categorical', probs_b, probs_a) + >>> print(ans.shape) + () + >>> # 必须传入额外的`probs`。 + >>> ans = ca2.kl_loss('Categorical', probs_b, probs_a) + >>> print(ans.shape) + () + + +probs + + 返回事件概率。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Cauchy.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Cauchy.txt new file mode 100644 index 00000000000..d8fb96ff0e0 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Cauchy.txt @@ -0,0 +1,114 @@ +Class mindspore.nn.probability.distribution.Cauchy(loc=None, scale=None, seed=None, dtype=mindspore.float32, name='Cauchy') + + 柯西分布(Cauchy distribution)。 + + 参数: + loc (int, float, list, numpy.ndarray, Tensor):柯西分布的位置。 + scale (int, float, list, numpy.ndarray, Tensor):柯西分布的比例。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Cauchy'。 + + 支持平台: + ``Ascend`` + + 注: + `scale`必须大于零。 + `dtype`必须是float,因为柯西分布是连续的。 + GPU后端不支持柯西分布。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化loc为3.0和scale为4.0的柯西分布。 + >>> cauchy1 = msd.Cauchy(3.0, 4.0, dtype=mindspore.float32) + >>> # 柯西分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,'loc'和'scale'必须通过参数传入。 + >>> cauchy2 = msd.Cauchy(dtype=mindspore.float32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1.0, 2.0, 3.0], dtype=mindspore.float32) + >>> loc_a = Tensor([2.0], dtype=mindspore.float32) + >>> scale_a = Tensor([2.0, 2.0, 2.0], dtype=mindspore.float32) + >>> loc_b = Tensor([1.0], dtype=mindspore.float32) + >>> scale_b = Tensor([1.0, 1.5, 2.0], dtype=mindspore.float32) + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有以下相同的参数。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # loc (Tensor):分布的位置。默认值:self.loc. + >>> # scale (Tensor):分布的比例。默认值:self.scale. + >>> # `prob`示例。 + >>> # 通过将'prob'替换为函数的名称,可以对其他概率函数进行类似的调用 + >>> ans = cauchy1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = cauchy1.prob(value, loc_b, scale_b) + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`loc`和`scale` + >>> ans = cauchy2.prob(value, loc_a, scale_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mode`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # loc (Tensor):分布的位置。默认值:self.loc. + >>> # scale (Tensor):分布的比例。默认值:self.scale. + >>> # `mode`示例。 + >>> ans = cauchy1.mode() # return 3.0 + >>> print(ans.shape) + () + >>> ans = cauchy1.mode(loc_b, scale_b) # return loc_b + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`loc`和`scale`。 + >>> ans = cauchy2.mode(loc_a, scale_a) + >>> print(ans.shape) + (3,) + >>> # 'kl_loss'和'cross_entropy'的接口相同: + >>> # 参数: + >>> # dist (str):分布的类型。仅支持"Cauchy"。 + >>> # loc_b (Tensor):分布b的位置。 + >>> # scale_b (Tensor):分布b的比例。 + >>> # loc (Tensor):分布a的位置。默认值:self.loc. + >>> # scale (Tensor):分布a的比例。默认值:self.scale. + >>> # `kl_loss`示例。`cross_entropy`也类似。 + >>> ans = cauchy1.kl_loss('Cauchy', loc_b, scale_b) + >>> print(ans.shape) + (3,) + >>> ans = cauchy1.kl_loss('Cauchy', loc_b, scale_b, loc_a, scale_a) + >>> print(ans.shape) + (3,) + >>> # 必须传入额外的`loc`和`scale`。 + >>> ans = cauchy2.kl_loss('Cauchy', loc_b, scale_b, loc_a, scale_a) + >>> print(ans.shape) + (3,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # loc (Tensor):分布的位置。默认值:self.loc. + >>> # scale (Tensor):分布的比例。默认值:self.scale. + >>> ans = cauchy1.sample() + >>> print(ans.shape) + () + >>> ans = cauchy1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = cauchy1.sample((2,3), loc_b, scale_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = cauchy2.sample((2,3), loc_a, scale_a) + >>> print(ans.shape) + (2, 3, 3) + + +loc + + 返回分布位置。 + + +scale + + 返回分布比例。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Distribution.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Distribution.txt new file mode 100644 index 00000000000..39119d18ad4 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Distribution.txt @@ -0,0 +1,184 @@ +Class mindspore.nn.probability.distribution.Distribution(seed, dtype, name, param) + + 所有分布的基类。 + + 参数: + seed (int):采样时使用的种子。如果为None,则使用0。 + dtype (mindspore.dtype):事件样例的类型。 + name (str):分布的名称。 + param (dict):用于初始化分布的参数。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + 派生类必须重写`_mean`、`_prob`和`_log_prob`等操作。必填参数必须通过`args`或`kwargs`传入,如`_prob`的`value`。 + + +cdf(value, *args, **kwargs) + + 在给定值下评估累积分布函数(Cumulatuve Distribution Function, CDF)。 + + 参数: + value (Tensor):要评估的值。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +construct(name, *args, **kwargs) + + 重写Cell中的`construct`。 + + 注: + 支持的函数包括: + '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):函数所需的关键字参数字典。 + + +cross_entropy(dist, *args, **kwargs) + + 评估分布a和b之间的交叉熵。 + + 参数: + dist (str):分布的类型。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +entropy(*args, **kwargs) + + 计算熵。 + + 参数: + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +get_dist_args(*args, **kwargs) + + 检查默认参数的可用性和有效性。 + + 参数: + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + 注: + 传递给字类的参数的顺序应该与通过`_add_parameter`初始化默认参数的顺序相同。 + + +get_dist_type() + + 返回分布类型。 + + +kl_loss(dist, *args, **kwargs) + + 评估KL散度,即KL(a||b)。 + + 参数: + dist (str):分布的类型。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +log_cdf(value, *args, **kwargs) + + 计算给定值对于的cdf的对数。 + + 参数: + value (Tensor):要评估的值。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +log_prob(value, *args, **kwargs) + + 计算给定值对应的概率的对数(pdf或pmf)。 + + 参数: + value (Tensor):要评估的值。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +log_survival(value, *args, **kwargs) + + 计算给定值对应的剩余函数的对数。 + + 参数: + value (Tensor):要评估的值。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +mean(*args, **kwargs) + + 评估平均值。 + + 参数: + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +mode(*args, **kwargs) + + 评估模式。 + + 参数: + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +prob(value, *args, **kwargs) + + 评估给定值下的概率(Probability Density Function或Probability Mass Function)。 + + 参数: + value (Tensor):要评估的值。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +sample(*args, **kwargs) + + 采样函数。 + + 参数: + shape(tuple):样本的shape。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +sd(*args, **kwargs) + + 标准差评估。 + + 参数: + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +survival_function(value, *args, **kwargs) + + 计算给定值对应的剩余函数。 + + 参数: + value (Tensor):要评估的值。 + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + + +var(*args, **kwargs) + + 评估方差。 + + 参数: + *args (list):传递给子类的位置参数列表。 + **kwargs (dict):传递给子类的关键字参数字典。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Exponential.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Exponential.txt new file mode 100644 index 00000000000..82e5ff2dffe --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Exponential.txt @@ -0,0 +1,100 @@ +Class mindspore.nn.probability.distribution.Exponential(rate=None, seed=None, dtype=mindspore.float32, name='Exponential') + + 示例类:指数分布(Exponential Distribution)。 + + 参数: + rate (float, list, numpy.ndarray, Tensor): 逆指数。默认值:None。 + seed (int): 采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype): 事件样例的类型。默认值:mindspore.float32。 + name (str): 分布的名称。默认值:'Exponential'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `rate`必须大于0。 + `dtype`必须是float,因为指数分布是连续的。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化rate为0.5的指数分布。 + >>> e1 = msd.Exponential(0.5, dtype=mindspore.float32) + >>> # 指数分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`rate`必须在函数调用期间通过`args`传入。 + >>> e2 = msd.Exponential(dtype=mindspore.float32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1, 2, 3], dtype=mindspore.float32) + >>> rate_a = Tensor([0.6], dtype=mindspore.float32) + >>> rate_b = Tensor([0.2, 0.5, 0.4], dtype=mindspore.float32) + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,如下所示。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # rate (Tensor):分布的率参数。默认值:self.rate. + >>> # `prob`示例。 + >>> # 通过将`prob`替换为函数的名称,可以对其他概率函数进行类似的调用。 + >>> ans = e1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = e1.prob(value, rate_b) + >>> print(ans.shape) + (3,) + >>> # `rate`必须在函数调用期间传入。 + >>> ans = e2.prob(value, rate_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mean`、`sd`、`var`和`entropy`具有相同的参数,如下所示。 + >>> # 参数: + >>> # rate (Tensor):分布的率参数。默认值:self.rate. + >>> # `mean`示例。`sd`、`var`和`entropy`是相似的。 + >>> ans = e1.mean() # return 2 + >>> print(ans.shape) + () + >>> ans = e1.mean(rate_b) # return 1 / rate_b + >>> print(ans.shape) + (3,) + >>> # `rate`必须在函数调用期间传入。 + >>> ans = e2.mean(rate_a) + >>> print(ans.shape) + (1,) + >>> # `kl_loss`和`cross_entropy`的接口相同。 + >>> # 参数: + >>> # dist (str):分布的名称。仅支持'Exponential'。 + >>> # rate_b (Tensor):分布b的率参数。 + >>> # rate_a (Tensor):分布a的率参数。默认值:self.rate. + >>> # `kl_loss`示例。`cross_entropy`也类似。 + >>> ans = e1.kl_loss('Exponential', rate_b) + >>> print(ans.shape) + (3,) + >>> ans = e1.kl_loss('Exponential', rate_b, rate_a) + >>> print(ans.shape) + (3,) + >>> # 必须传入额外的`rate`。 + >>> ans = e2.kl_loss('Exponential', rate_b, rate_a) + >>> print(ans.shape) + (3,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # probs1 (Tensor):分布的率参数。默认值:self.rate. + >>> ans = e1.sample() + >>> print(ans.shape) + () + >>> ans = e1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = e1.sample((2,3), rate_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = e2.sample((2,3), rate_a) + >>> print(ans.shape) + (2, 3, 1) + + +rate + + 返回`rate`。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gamma.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gamma.txt new file mode 100644 index 00000000000..9cc05d401b4 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gamma.txt @@ -0,0 +1,114 @@ +Class mindspore.nn.probability.distribution.Gamma(concentration=None, rate=None, seed=None, dtype=mindspore.float32, name='Gamma') + + 伽马分布(Gamma distribution)。 + + 参数: + concentration (list, numpy.ndarray, Tensor):浓度,也被称为伽马分布的alpha。默认值:None。 + rate (list, numpy.ndarray, Tensor):逆尺度参数,也被称为伽马分布的beta。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Gamma'。 + + 支持平台: + ``Ascend`` + + 注: + `concentration`和`rate`必须大于零。 + `dtype`必须是float,因为伽马分布是连续的。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化concentration为3.0和rate为4.0的伽马分布。 + >>> g1 = msd.Gamma([3.0], [4.0], dtype=mindspore.float32) + >>> # 伽马分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`concentration`和`rate`必须通过参数传入。 + >>> g2 = msd.Gamma(dtype=mindspore.float32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1.0, 2.0, 3.0], dtype=mindspore.float32) + >>> concentration_a = Tensor([2.0], dtype=mindspore.float32) + >>> rate_a = Tensor([2.0, 2.0, 2.0], dtype=mindspore.float32) + >>> concentration_b = Tensor([1.0], dtype=mindspore.float32) + >>> rate_b = Tensor([1.0, 1.5, 2.0], dtype=mindspore.float32) + >>> + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有以下相同的参数。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # concentration (Tensor):分布的浓度。默认值:self._concentration。 + >>> # rate (Tensor):分布的逆尺度。默认值:self._rate。 + >>> # `prob`示例。 + >>> # 通过将'prob'替换为函数的名称,可以对其他概率函数进行类似的调用 + >>> ans = g1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = g1.prob(value, concentration_b, rate_b) + >>> print(ans.shape) + (3,) + >>> # 在g2的函数调用期间必须传入`concentration`和`rate`。 + >>> ans = g2.prob(value, concentration_a, rate_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mean`、`sd`、`mode`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # concentration (Tensor):分布的浓度。默认值:self._concentration。 + >>> # rate (Tensor):分布的逆尺度。默认值:self._rate。 + >>># `mean`、`sd`、`mode`、`var`和`entropy`的示例相似。 + >>> ans = g1.mean() + >>> print(ans.shape) + (1,) + >>> ans = g1.mean(concentration_b, rate_b) + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`concentration`和`rate`。 + >>> ans = g2.mean(concentration_a, rate_a) + >>> print(ans.shape) + (3,) + >>> # 'kl_loss'和'cross_entropy'的接口相同: + >>> # 参数: + >>> # dist (str):分布的类型。仅支持"Gamma"。 + >>> # concentration_b (Tensor):分布b的浓度。 + >>> # rate_b (Tensor):分布b的逆尺度。 + >>> # concentration_a (Tensor):分布a的浓度。默认值:self._concentration。 + >>> # rate_a (Tensor):分布a的逆尺度。默认值:self._rate。 + >>> # `kl_loss`示例。`cross_entropy`也类似。 + >>> ans = g1.kl_loss('Gamma', concentration_b, rate_b) + >>> print(ans.shape) + (3,) + >>> ans = g1.kl_loss('Gamma', concentration_b, rate_b, concentration_a, rate_a) + >>> print(ans.shape) + (3,) + >>> # 必须传入额外的`concentration`和`rate`。 + >>> ans = g2.kl_loss('Gamma', concentration_b, rate_b, concentration_a, rate_a) + >>> print(ans.shape) + (3,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # concentration (Tensor):分布的浓度。默认值:self._concentration。 + >>> # rate (Tensor):分布的逆尺度。默认值:self._rate。 + >>> ans = g1.sample() + >>> print(ans.shape) + (1,) + >>> ans = g1.sample((2,3)) + >>> print(ans.shape) + (2, 3, 1) + >>> ans = g1.sample((2,3), concentration_b, rate_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = g2.sample((2,3), concentration_a, rate_a) + >>> print(ans.shape) + (2, 3, 3) + + +concentration + + 返回分布的浓度(也称为伽马分布的alpha)。 + + +rate + + 返回分布的逆尺度(也称为伽马分布的beta)。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Geometric.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Geometric.txt new file mode 100644 index 00000000000..cafd91e1514 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Geometric.txt @@ -0,0 +1,103 @@ +Class mindspore.nn.probability.distribution.Geometric(probs=None, seed=None, dtype=mindspore.int32, name='Geometric') + + 几何分布(Geometric Distribution)。 + + 它代表在第一次成功之前有k次失败,即在第一次成功实现时,总共有k+1个伯努利试验。 + + 参数: + probs (float, list, numpy.ndarray, Tensor):成功的概率。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.int32. + name (str):分布的名称。默认值:'Geometric'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `probs`必须是合适的概率(0>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化probability为0.5的几何分布。 + >>> g1 = msd.Geometric(0.5, dtype=mindspore.int32) + >>> # 几何分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`probs`必须在函数调用过程中通过参数传入。 + >>> g2 = msd.Geometric(dtype=mindspore.int32) + >>> + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1, 0, 1], dtype=mindspore.int32) + >>> probs_a = Tensor([0.6], dtype=mindspore.float32) + >>> probs_b = Tensor([0.2, 0.5, 0.4], dtype=mindspore.float32) + >>> + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有以下相同的参数。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # probs1 (Tensor):伯努利试验成功的概率。默认值:self.probs. + >>> # `prob`示例。 + >>> # 通过将`prob`替换为函数的名称,可以对其他概率函数进行类似的调用。 + >>> ans = g1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = g1.prob(value, probs_b) + >>> print(ans.shape) + (3,) + >>> # `probs`必须在函数调用期间传入。 + >>> ans = g2.prob(value, probs_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mean`、`sd`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # probs1 (Tensor):伯努利试验成功的概率。默认值:self.probs. + >>> # `mean`示例。`sd`、`var`和`entropy`是相似的。 + >>> ans = g1.mean() # return 1.0 + >>> print(ans.shape) + () + >>> ans = g1.mean(probs_b) + >>> print(ans.shape) + (3,) + >>> # 函数调用时必须传入probs。 + >>> ans = g2.mean(probs_a) + >>> print(ans.shape) + (1,) + >>> # 'kl_loss'和'cross_entropy'的接口相同。 + >>> # 参数: + >>> # dist (str):分布的名称。仅支持'Geometric'。 + >>> # probs1_b (Tensor):伯努利分布b试验成功的概率。 + >>> # probs1_a (Tensor):伯努利分布a试验成功的概率。 + >>> # `kl_loss`示例。`cross_entropy`也类似。 + >>> ans = g1.kl_loss('Geometric', probs_b) + >>> print(ans.shape) + (3,) + >>> ans = g1.kl_loss('Geometric', probs_b, probs_a) + >>> print(ans.shape) + (3,) + >>> # 必须传入额外的`probs`。 + >>> ans = g2.kl_loss('Geometric', probs_b, probs_a) + >>> print(ans.shape) + (3,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tupler):样本的shape。默认值:() + >>> # probs1 (Tensor):伯努利试验成功的概率。默认值:self.probs. + >>> ans = g1.sample() + >>> print(ans.shape) + () + >>> ans = g1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = g1.sample((2,3), probs_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = g2.sample((2,3), probs_a) + >>> print(ans.shape) + (2, 3, 1) + + +probs + + 返回伯努利试验成功的概率。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gumbel.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gumbel.txt new file mode 100644 index 00000000000..1d6aa6610f9 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Gumbel.txt @@ -0,0 +1,45 @@ +Class mindspore.nn.probability.distribution.Gumbel(loc, scale, seed=0, dtype=mindspore.float32, name='Gumbel') + + 耿贝尔分布(Gumbel distribution)。 + + 参数: + loc (float, list, numpy.ndarray, Tensor):耿贝尔分布的位置。 + scale (float, list, numpy.ndarray, Tensor):耿贝尔分布的尺度。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):分布类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Gumbel'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `scale`必须大于零。 + `dtype`必须是浮点类型,因为耿贝尔分布是连续的。 + GPU后端不支持`kl_loss`和`cross_entropy`。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> class Prob(nn.Cell): + ... def __init__(self): + ... super(Prob, self).__init__() + ... self.gum = msd.Gumbel(np.array([0.0]), np.array([[1.0], [2.0]]), dtype=mindspore.float32) + ... + ... def construct(self, x_): + ... return self.gum.prob(x_) + >>> value = np.array([1.0, 2.0]).astype(np.float32) + >>> pdf = Prob() + >>> output = pdf(Tensor(value, dtype=mindspore.float32)) + + +loc + + 返回分布位置。 + + +scale + + 返回分布尺度。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.LogNormal.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.LogNormal.txt new file mode 100644 index 00000000000..989d1543120 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.LogNormal.txt @@ -0,0 +1,46 @@ +Class mindspore.nn.probability.distribution.LogNormal(loc=None, scale=None, seed=0, dtype=mindspore.float32, name='LogNormal') + + 对数正态分布(LogNormal distribution)。 + 对数正态分布是随机变量的连续概率分布,变量的对数为正态分布。它被构造为正态分布的指数变换。 + + 参数: + loc (int, float, list, numpy.ndarray, Tensor):基础正态分布的平均值。默认值:None。 + scale (int, float, list, numpy.ndarray, Tensor):基础正态分布的标准差。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):分布类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'LogNormal'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `scale`必须大于零。 + `dtype`必须是float,因为对数正态分布是连续的。 + + 示例: + >>> import numpy as np + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> class Prob(nn.Cell): + ... def __init__(self): + ... super(Prob, self).__init__() + ... self.ln = msd.LogNormal(np.array([0.3]), np.array([[0.2], [0.4]]), dtype=mindspore.float32) + ... def construct(self, x_): + ... return self.ln.prob(x_) + >>> pdf = Prob() + >>> output = pdf(Tensor([1.0, 2.0], dtype=mindspore.float32)) + >>> print(output.shape) + (2, 2) + + +loc + + 返回分布的均值。 + + +scale + + 返回分布的标准差。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Logistic.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Logistic.txt new file mode 100644 index 00000000000..c78428dfed3 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Logistic.txt @@ -0,0 +1,97 @@ +Class mindspore.nn.probability.distribution.Logistic(loc=None, scale=None, seed=None, dtype=mindspore.float32, name='Logistic') + + 逻辑斯谛分布(Logistic distribution)。 + + 参数: + loc (int, float, list, numpy.ndarray, Tensor):逻辑斯谛分布的位置。默认值:None。 + scale (int, float, list, numpy.ndarray, Tensor):逻辑斯谛分布的尺度。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Logistic'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `scale`必须大于零。 + `dtype`必须是float,因为逻辑斯谛分布是连续的。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化loc为3.0和scale为4.0的逻辑斯谛分布。 + >>> l1 = msd.Logistic(3.0, 4.0, dtype=mindspore.float32) + >>> # 可以在没有参数的情况下初始化逻辑斯谛分布。 + >>> # 在这种情况下,`loc`和`scale`必须通过参数传入。 + >>> l2 = msd.Logistic(dtype=mindspore.float32) + >>> + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1.0, 2.0, 3.0], dtype=mindspore.float32) + >>> loc_a = Tensor([2.0], dtype=mindspore.float32) + >>> scale_a = Tensor([2.0, 2.0, 2.0], dtype=mindspore.float32) + >>> loc_b = Tensor([1.0], dtype=mindspore.float32) + >>> scale_b = Tensor([1.0, 1.5, 2.0], dtype=mindspore.float32) + >>> + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有以下相同的参数。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # loc (Tensor):分布的位置。默认值:self.loc. + >>> # scale (Tensor):分布的尺度。默认值:self.scale. + >>> # `prob`示例。 + >>> # 通过将'prob'替换为函数的名称,可以对其他概率函数进行类似的调用 + >>> ans = l1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = l1.prob(value, loc_b, scale_b) + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`loc`和`scale` + >>> ans = l1.prob(value, loc_a, scale_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mean`、`mode`、`sd`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # loc (Tensor):分布的位置。默认值:self.loc. + >>> # scale (Tensor):分布的尺度。默认值:self.scale. + >>> # 'mean'示例。`mode`、`sd`、`var`和`entropy`也类似。 + >>> ans = l1.mean() + >>> print(ans.shape) + () + >>> ans = l1.mean(loc_b, scale_b) + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`loc`和`scale`。 + >>> ans = l1.mean(loc_a, scale_a) + >>> print(ans.shape) + (3,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # loc (Tensor):分布的位置。默认值:self.loc. + >>> # scale (Tensor):分布的尺度。默认值:self.scale. + >>> ans = l1.sample() + >>> print(ans.shape) + () + >>> ans = l1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = l1.sample((2,3), loc_b, scale_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = l1.sample((2,3), loc_a, scale_a) + >>> print(ans.shape) + (2, 3, 3) + + +loc + + 返回分布的位置。 + + +scale + + 返回分布的尺度。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Normal.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Normal.txt new file mode 100644 index 00000000000..d932b9a62c2 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Normal.txt @@ -0,0 +1,103 @@ +Class mindspore.nn.probability.distribution.Normal(mean=None, sd=None, seed=None, dtype=mindspore.float32, name='Normal') + + 正态分布(Normal distribution)。 + + 参数: + mean (int, float, list, numpy.ndarray, Tensor):正态分布的平均值。默认值:None。 + sd (int, float, list, numpy.ndarray, Tensor):正态分布的标准差。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Normal'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `sd`必须大于零。 + `dtype`必须是float,因为正态分布是连续的。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化mean为3.0和standard deviation为4.0的正态分布。 + >>> n1 = msd.Normal(3.0, 4.0, dtype=mindspore.float32) + >>> # 正态分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`mean`和`sd`必须通过参数传入。 + >>> n2 = msd.Normal(dtype=mindspore.float32) + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1.0, 2.0, 3.0], dtype=mindspore.float32) + >>> mean_a = Tensor([2.0], dtype=mindspore.float32) + >>> sd_a = Tensor([2.0, 2.0, 2.0], dtype=mindspore.float32) + >>> mean_b = Tensor([1.0], dtype=mindspore.float32) + >>> sd_b = Tensor([1.0, 1.5, 2.0], dtype=mindspore.float32) + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有以下相同的参数。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # mean (Tensor):分布的均值。默认值:self._mean_value。 + >>> # sd (Tensor):分布的标准差。默认值:self._sd_value。 + >>> # `prob`示例。 + >>> # 通过将'prob'替换为其他概率函数的名称,可以对其他概率函数进行类似的调用 + >>> ans = n1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = n1.prob(value, mean_b, sd_b) + >>> print(ans.shape) + (3,) + >>> # 在函数调用期间必须传入`mean`和`sd` + >>> ans = n2.prob(value, mean_a, sd_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mean`、`sd`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # mean (Tensor):分布的均值。默认值:self._mean_value。 + >>> # sd (Tensor):分布的标准差。默认值:self._sd_value。 + >>> # 'mean'示例。`sd`、`var`和`entropy`是相似的。 + >>> ans = n1.mean() # return 0.0 + >>> print(ans.shape) + () + >>> ans = n1.mean(mean_b, sd_b) # return mean_b + >>> print(ans.shape) + (3,) + >>> # `mean`和`sd`必须在函数调用期间传入。 + >>> ans = n2.mean(mean_a, sd_a) + >>> print(ans.shape) + (3,) + >>> # 'kl_loss'和'cross_entropy'的接口相同: + >>> # 参数: + >>> # dist (str):分布的类型。仅支持"Normal"。 + >>> # mean_b (Tensor):分布b的均值。 + >>> # sd_b(Tensor):分布b的标准差。 + >>> # mean_a (Tensor):分布a的均值。默认值:self._mean_value。 + >>> # sd_a(Tensor):分布a的标准差。默认值:self._sd_value。 + >>> # `kl_loss`示例。`cross_entropy`也类似。 + >>> ans = n1.kl_loss('Normal', mean_b, sd_b) + >>> print(ans.shape) + (3,) + >>> ans = n1.kl_loss('Normal', mean_b, sd_b, mean_a, sd_a) + >>> print(ans.shape) + (3,) + >>> # 必须传入额外的`mean`和`sd`。 + >>> ans = n2.kl_loss('Normal', mean_b, sd_b, mean_a, sd_a) + >>> print(ans.shape) + (3,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # mean (Tensor):分布的均值。默认值:self._mean_value。 + >>> # sd (Tensor):分布的标准差。默认值:self._sd_value。 + >>> ans = n1.sample() + >>> print(ans.shape) + () + >>> ans = n1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = n1.sample((2,3), mean_b, sd_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = n2.sample((2,3), mean_a, sd_a) + >>> print(ans.shape) + (2, 3, 3) + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Poisson.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Poisson.txt new file mode 100644 index 00000000000..b0f7d483f5d --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Poisson.txt @@ -0,0 +1,85 @@ +Class mindspore.nn.probability.distribution.Poisson(rate=None, seed=None, dtype=mindspore.float32, name='Poisson') + + 泊松分布(Poisson Distribution)。 + + 参数: + rate (list, numpy.ndarray, Tensor):泊松分布的率参数。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Poisson'。 + + 支持平台: + ``Ascend`` + + 注: + `rate`必须大于0。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化rate为0.5的泊松分布。 + >>> p1 = msd.Poisson([0.5], dtype=mindspore.float32) + >>> # 泊松分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`rate`必须在函数调用期间通过`args`传入。 + >>> p2 = msd.Poisson(dtype=mindspore.float32) + >>> + >>> # 下面是用于测试的Tensor + >>> value = Tensor([1, 2, 3], dtype=mindspore.int32) + >>> rate_a = Tensor([0.6], dtype=mindspore.float32) + >>> rate_b = Tensor([0.2, 0.5, 0.4], dtype=mindspore.float32) + >>> + >>> # 公共接口对应的概率函数的私有接口,包括`prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,如下所示。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # rate (Tensor):分布的率参数。默认值:self.rate. + >>> # `prob`示例。 + >>> # 通过将`prob`替换为其他概率函数的名称,可以对其他概率函数进行类似的调用。 + >>> ans = p1.prob(value) + >>> print(ans.shape) + (3,) + >>> # 根据分布b进行评估。 + >>> ans = p1.prob(value, rate_b) + >>> print(ans.shape) + (3,) + >>> # `rate`必须在函数调用期间传入。 + >>> ans = p2.prob(value, rate_a) + >>> print(ans.shape) + (3,) + >>> # 函数`mean`、`mode`、`sd`和'var'具有相同的参数,如下所示。 + >>> # 参数: + >>> # rate (Tensor):分布的率参数。默认值:self.rate. + >>> # `mean`、`sd`、`mode`和`var`的示例都类似。 + >>> ans = p1.mean() # return 2 + >>> print(ans.shape) + (1,) + >>> ans = p1.mean(rate_b) # return 1 / rate_b + >>> print(ans.shape) + (3,) + >>> # `rate`必须在函数调用期间传入。 + >>> ans = p2.mean(rate_a) + >>> print(ans.shape) + (1,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # probs1 (Tensor):分布的率参数。默认值:self.rate. + >>> ans = p1.sample() + >>> print(ans.shape) + (1, ) + >>> ans = p1.sample((2,3)) + >>> print(ans.shape) + (2, 3, 1) + >>> ans = p1.sample((2,3), rate_b) + >>> print(ans.shape) + (2, 3, 3) + >>> ans = p2.sample((2,3), rate_a) + >>> print(ans.shape) + (2, 3, 1) + + +rate + + 返回分布的`rate`参数。 + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.TransformedDistribution.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.TransformedDistribution.txt new file mode 100644 index 00000000000..97c4c15c4e9 --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.TransformedDistribution.txt @@ -0,0 +1,47 @@ +Class mindspore.nn.probability.distribution.TransformedDistribution(bijector, distribution, seed=None, name='transformed_distribution') + + 转换分布(Transformed Distribution)。 + 该类包含一个Bijector和一个分布,并通过Bijector定义的操作将原始分布转换为新分布。 + + 参数: + bijector (Bijector):要执行的转换。 + distribution (Distribution):原始分布。必须具有float数据类型。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + 如果在初始化TransformedDistribution对象时给出了此种子,则对象的采样函数将使用此种子;否则,将使用基础分布的种子。 + name (str):转换分布的名称。默认值:'transformed_distribution'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + 用于初始化原始分布的参数不能为None。 + 例如,由于未指定`mean`和`sd`,因此无法使用mynormal = msd.Normal(dtype=mindspore.float32)初始化TransformedDistribution。 + + 示例: + >>> import numpy as np + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> import mindspore.nn.probability.bijector as msb + >>> from mindspore import Tensor + >>> class Net(nn.Cell): + ... def __init__(self, shape, dtype=mindspore.float32, seed=0, name='transformed_distribution'): + ... super(Net, self).__init__() + ... # 创建转换分布 + ... self.exp = msb.Exp() + ... self.normal = msd.Normal(0.0, 1.0, dtype=dtype) + ... self.lognormal = msd.TransformedDistribution(self.exp, self.normal, seed=seed, name=name) + ... self.shape = shape + ... + ... def construct(self, value): + ... cdf = self.lognormal.cdf(value) + ... sample = self.lognormal.sample(self.shape) + ... return cdf, sample + >>> shape = (2, 3) + >>> net = Net(shape=shape, name="LogNormal") + >>> x = np.array([2.0, 3.0, 4.0, 5.0]).astype(np.float32) + >>> tx = Tensor(x, dtype=mindspore.float32) + >>> cdf, sample = net(tx) + >>> print(sample.shape) + (2, 3) + diff --git a/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Uniform.txt b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Uniform.txt new file mode 100644 index 00000000000..64e718cd6ae --- /dev/null +++ b/docs/api/api_python/nn/probability/distribution/mindspore.nn.probability.distribution.Uniform.txt @@ -0,0 +1,115 @@ +Class mindspore.nn.probability.distribution.Uniform(low=None, high=None, seed=None, dtype=mindspore.float32, name='Uniform') + + 示例类:均匀分布(Uniform Distribution)。 + + 参数: + low (int, float, list, numpy.ndarray, Tensor):分布的下限。默认值:None。 + high (int, float, list, numpy.ndarray, Tensor):分布的上限。默认值:None。 + seed (int):采样时使用的种子。如果为None,则使用全局种子。默认值:None。 + dtype (mindspore.dtype):事件样例的类型。默认值:mindspore.float32。 + name (str):分布的名称。默认值:'Uniform'。 + + 支持平台: + ``Ascend`` ``GPU`` + + 注: + `low`必须小于`high`。 + `dtype`必须是float类型,因为均匀分布是连续的。 + + 示例: + >>> import mindspore + >>> import mindspore.nn as nn + >>> import mindspore.nn.probability.distribution as msd + >>> from mindspore import Tensor + >>> # 初始化lower bound为0.0和higher bound为1.0的均匀分布。 + >>> u1 = msd.Uniform(0.0, 1.0, dtype=mindspore.float32) + >>> # 平均分布可以在没有参数的情况下初始化。 + >>> # 在这种情况下,`high`和`low`必须在函数调用过程中通过参数传入。 + >>> u2 = msd.Uniform(dtype=mindspore.float32) + >>> + >>> # 下面是用于测试的Tensor + >>> value = Tensor([0.5, 0.8], dtype=mindspore.float32) + >>> low_a = Tensor([0., 0.], dtype=mindspore.float32) + >>> high_a = Tensor([2.0, 4.0], dtype=mindspore.float32) + >>> low_b = Tensor([-1.5], dtype=mindspore.float32) + >>> high_b = Tensor([2.5, 5.], dtype=mindspore.float32) + >>> # 公共接口对应的概率函数的私有接口,包括 + >>> # `prob`、`log_prob`、`cdf`、`log_cdf`、`survival_function`、`log_survival`,具有相同的参数。 + >>> # 参数: + >>> # value (Tensor):要评估的值。 + >>> # low (Tensor):分布的下限。默认值:self.low. + >>> # high (Tensor):分布的上限。默认值:self.high。 + >>> # `prob`示例。 + >>> # 通过将'prob'替换为函数的名称,可以对其他概率函数进行类似的调用。 + >>> ans = u1.prob(value) + >>> print(ans.shape) + (2,) + >>> # 根据分布b进行评估。 + >>> ans = u1.prob(value, low_b, high_b) + >>> print(ans.shape) + (2,) + >>> # `high`和`low`必须在函数调用期间传入。 + >>> ans = u2.prob(value, low_a, high_a) + >>> print(ans.shape) + (2,) + >>> # 函数`mean`、`sd`、`var`和`entropy`具有相同的参数。 + >>> # 参数: + >>> # low (Tensor):分布的下限。默认值:self.low. + >>> # high (Tensor):分布的上限。默认值:self.high。 + >>> # `mean`示例。`sd`、`var`和`entropy`是相似的。 + >>> ans = u1.mean() # return 0.5 + >>> print(ans.shape) + () + >>> ans = u1.mean(low_b, high_b) # return (low_b + high_b) / 2 + >>> print(ans.shape) + (2,) + >>> # `high`和`low`必须在函数调用期间传入。 + >>> ans = u2.mean(low_a, high_a) + >>> print(ans.shape) + (2,) + >>> # 'kl_loss'和'cross_entropy'的接口相同。 + >>> # 参数: + >>> # dist (str):分布的类型。在这种情况下,应该是"Uniform"。 + >>> # low_b (Tensor):分布b的下限。 + >>> # high_b (Tensor):分布b的上限。 + >>> # low_a (Tensor):分布a的下限。默认值:self.low. + >>> # high_a (Tensor):分布a的上限。默认值:self.high。 + >>> # `kl_loss`示例。`cross_entropy`也类似。 + >>> ans = u1.kl_loss('Uniform', low_b, high_b) + >>> print(ans.shape) + (2,) + >>> ans = u1.kl_loss('Uniform', low_b, high_b, low_a, high_a) + >>> print(ans.shape) + (2,) + >>> # 必须传入额外的`high`和`low`。 + >>> ans = u2.kl_loss('Uniform', low_b, high_b, low_a, high_a) + >>> print(ans.shape) + (2,) + >>> # `sample`示例。 + >>> # 参数: + >>> # shape (tuple):样本的shape。默认值:() + >>> # low (Tensor):分布的下限。默认值:self.low. + >>> # high (Tensor):分布的上限。默认值:self.high。 + >>> ans = u1.sample() + >>> print(ans.shape) + () + >>> ans = u1.sample((2,3)) + >>> print(ans.shape) + (2, 3) + >>> ans = u1.sample((2,3), low_b, high_b) + >>> print(ans.shape) + (2, 3, 2) + >>> ans = u2.sample((2,3), low_a, high_a) + >>> print(ans.shape) + (2, 3, 2) + + +high + + 返回分布的上限。 + + +low + + 返回分布的下限。 + diff --git a/docs/api/api_python/nn/probability/mindspore.nn.probability.txt b/docs/api/api_python/nn/probability/mindspore.nn.probability.txt new file mode 100644 index 00000000000..90e42af75ca --- /dev/null +++ b/docs/api/api_python/nn/probability/mindspore.nn.probability.txt @@ -0,0 +1,3 @@ +mindspore.nn.probability + +用于构造概率网络的高级组件。