Gumbel¶
耿贝尔分布
数学公式:
\[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]])
属性¶
方法¶
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\):欧拉常数。