Gumbel

class paddle.distribution. Gumbel ( loc, scale ) [源代码]

耿贝尔分布

数学公式:

\[F(x; \mu, \beta) = e^{-e^{\frac {-(x-\mu)} {\beta}}}\]

上面数学公式中:

\(loc = \mu\):耿贝尔分布位置参数。

\(scale = \beta\):耿贝尔分布尺度参数。

参数

  • loc (int|float|Tensor) - 耿贝尔分布位置参数。数据类型为 int、float、Tensor。

  • scale (int|float|Tensor) - 耿贝尔分布尺度参数。数据类型为 int、float、Tensor。

代码示例

import paddle
from paddle.distribution.gumbel import Gumbel

# Gumbel distributed with loc=0, scale=1
dist = Gumbel(paddle.full([1], 0.0), paddle.full([1], 1.0))
dist.sample([2])
# Tensor(shape=[2, 1], dtype=float32, place=Place(gpu:0), stop_gradient=True, [[-0.27544352], [-0.64499271]])
value = paddle.full([1], 0.5)
dist.prob(value)
# Tensor(shape=[1], dtype=float32, place=Place(gpu:0), stop_gradient=True, [0.33070430])
dist.log_prob(value)
# Tensor(shape=[1], dtype=float32, place=Place(gpu:0), stop_gradient=True, [-1.10653067])
dist.cdf(value)
# Tensor(shape=[1], dtype=float32, place=Place(gpu:0), stop_gradient=True, [0.54523915])
dist.entropy()
# Tensor(shape=[1], dtype=float32, place=Place(gpu:0), stop_gradient=True, [1.57721567])
dist.rsample([2])
# Tensor(shape=[2, 1], dtype=float32, place=Place(gpu:0), stop_gradient=True, [[0.80463481], [0.91893655]])

属性

mean

均值

数学公式:

\[mean = -\gamma\]

上面数学公式中:

\(\gamma\):欧拉常数。

variance

方差

数学公式:

\[variance = \frac{1}{6}{\pi^2\beta^2}\]

上面数学公式中:

\(scale = \beta\):耿贝尔分布尺度参数。

stddev

标准差

数学公式:

\[stddev = \frac{1}{\sqrt{6}} {\pi\beta}\]

上面数学公式中:

\(scale = \beta\):耿贝尔分布尺度参数。

方法

prob(value)

耿贝尔分布的概率密度函数。

参数

  • value (Tensor|Scalar) - 待计算的值。

数学公式:

\[prob(value) = e^{-e^{\frac {-(value-\mu)} {\beta}}}\]

上面数学公式中:

\(loc = \mu\):耿贝尔分布位置参数。

\(scale = \beta\):耿贝尔分布尺度参数。

返回

  • Tensor - value 在耿贝尔分布下的概率值。

log_prob(value)

耿贝尔分布的对数概率密度函数。

参数

  • value (Tensor|Scalar) - 待计算的值。

数学公式:

\[log\_prob(value) = log(e^{-e^{\frac {-(value-\mu)} {\beta}}})\]

上面数学公式中:

\(loc = \mu\):耿贝尔分布位置参数。

\(scale = \beta\):耿贝尔分布尺度参数。

返回

  • Tensor - value 在耿贝尔分布下的对数概率值。

cdf(value)

累积分布函数

参数

  • value (Tensor) - 输入 Tensor。

数学公式:

\[cdf(value) = e^{-e^{\frac {-(value-\mu)} {\beta}}}\]

上面的数学公式中:

\(loc = \mu\):耿贝尔分布位置参数。

\(scale = \beta\):耿贝尔分布尺度参数。

返回

  • Tensor: value 对应 Gumbel 累积分布函数下的值。

entropy(scale)

耿贝尔分布的信息熵。

参数

  • scale (int|float|Tensor) - 耿贝尔分布的尺度参数。

数学公式:

\[entropy(scale) = ln(\beta) + 1 + γ\]

上面数学公式中:

\(scale = \beta\):耿贝尔分布尺度参数。

\(\gamma\):欧拉常数。

sample(shape)

随机采样,生成指定维度的样本。

参数

  • shape (list[int]) - 1 维列表,指定样本的维度。

返回

  • Tensor - 预先设计好维度的样本数据。

rsample(shape)

重参数化采样。

参数

  • shape (list[int]) - 1 维列表,指定样本的维度。

返回

  • Tensor - 预先设计好维度的样本数据。