当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。