mindspore2022/docs/api/api_python/nn_probability/mindspore.nn.probability.di...

121 lines
5.0 KiB
ReStructuredText
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

mindspore.nn.probability.distribution.Gamma
================================================
.. py: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``
.. note::
- `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)
.. py:method:: concentration
:property:
返回分布的浓度也称为伽马分布的alpha
.. py:method:: rate
:property:
返回分布的逆尺度也称为伽马分布的beta