随机变量

随机变量

属性 RandomVariable(distribution)[源码]

基类: pyro.contrib.randomvariable.random_variable.RVMagicOps, pyro.contrib.randomvariable.random_variable.RVChainOps

围绕分布的实验性随机变量容器类

表示被解释为随机变量的分布。它允许对分布所代表的随机变量进行简单的算术变换,而不是通过对其应用逐点变换来直接操纵概率密度。为了获得更大的灵活性,请考虑使用 transform 方法。请注意,如果执行不可逆变换(例如 abs(X)X**2),某些功能可能无法正常工作。

可以使用方便的 Distribution.rvRandomVariable.dist 属性在 RandomVariableDistribution 对象之间切换。

支持链式操作或算术运算符重载。

示例用法

# This should be equivalent to an Exponential distribution.
RandomVariable(Uniform(0, 1)).log().neg().dist

# These two distributions Y1, Y2 should be the same
X = Uniform(0, 1).rv
Y1 = X.mul(4).pow(0.5).sub(1).abs().neg().dist
Y2 = (-abs((4*X)**(0.5) - 1)).dist
属性 dist

用于公开随机变量底层分布的便捷属性。

返回

随机变量底层的 Distribution 对象

返回类型

Distribution

transform(t: torch.distributions.transforms.Transform)[源码]

对随机变量底层的分布执行变换。

参数

t (Transform) – 要应用于分布的变换(或变换序列)。在 torch.distributions.transformspyro.distributions.transforms 中有许多示例,您也可以直接从 Transform 创建子类。

返回

变换后的 RandomVariable

返回类型

RandomVariable