随机变量¶
随机变量¶
- class RandomVariable(distribution)[source]¶
基础类:
pyro.contrib.randomvariable.random_variable.RVMagicOps
,pyro.contrib.randomvariable.random_variable.RVChainOps
实验性的随机变量容器类,围绕一个分布
表示一个被解释为随机变量的分布。这允许对分布所代表的随机变量进行简单的算术变换,而不是通过对概率密度应用逐点变换来直接操作它。为了获得更大的灵活性,考虑使用transform方法。请注意,如果您执行不可逆的变换(如abs(X)或X**2),某些功能可能无法正常工作。
可以在RandomVariable和Distribution对象之间切换,使用方便的Distribution.rv和RandomVariable.dist属性。
支持链式操作或算术运算符重载。
示例用法:
# 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
- property dist¶
方便属性,用于暴露随机变量的基础分布。
- Returns
随机变量基础的Distribution对象
- Return type
- transform(t: torch.distributions.transforms.Transform)[source]¶
对随机变量(RV)的基础分布执行转换。
- Parameters
t (Transform) – 要应用于分布的变换(或变换序列)。在torch.distributions.transforms和pyro.distributions.transforms中可以找到许多示例,或者你可以直接从Transform子类化。
- Returns
转换后的 RandomVariable
- Return type