當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PyTorch TransformedDistribution用法及代碼示例


本文簡要介紹python語言中 torch.distributions.transformed_distribution.TransformedDistribution 的用法。

用法:

class torch.distributions.transformed_distribution.TransformedDistribution(base_distribution, transforms, validate_args=None)

基礎:torch.distributions.distribution.Distribution

Distribution 類的擴展,它將一係列轉換應用於基本分布。令 f 為應用的變換的組合:

X ~ BaseDistribution
Y = f(X) ~ TransformedDistribution(BaseDistribution, f)
log p(Y) = log p(X) + log |det (dX/dY)|

請注意,TransformedDistribution.event_shape 是其基本分布及其變換的最大形狀,因為變換可以引入事件之間的相關性。

TransformedDistribution 的用法示例如下:

# Building a Logistic Distribution
# X ~ Uniform(0, 1)
# f = a + b * logit(X)
# Y ~ f(X) ~ Logistic(a, b)
base_distribution = Uniform(0, 1)
transforms = [SigmoidTransform().inv, AffineTransform(loc=a, scale=b)]
logistic = TransformedDistribution(base_distribution, transforms)

有關更多示例,請查看 GumbelHalfCauchyHalfNormalLogNormalParetoWeibullRelaxedBernoulliRelaxedOneHotCategorical 的實現

相關用法


注:本文由純淨天空篩選整理自pytorch.org大神的英文原創作品 torch.distributions.transformed_distribution.TransformedDistribution。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。