【问题标题】:PYMC Deterministic variable with parent as class attribute以父类为类属性的 PYMC 确定性变量
【发布时间】:2016-02-18 00:23:50
【问题描述】:

我正在尝试创建如下所示的 PYMC 确定性变量。

@pymc.deterministic
def tau(s = sigma):
    return 1.0/(s**2)

但是,在我的例子中,模型参数(PYMC 随机变量)被定义为类属性。因此,sigma 只能由类方法访问(通过self.sigma)。试图使它成为如下的类方法

@pymc.deterministic
def tau(self, s = None):
    sigma = self.sigma
    return 1.0/(sigma**2)

抛出错误(显然)。

ValueError: Deterministic tau: no parent provided for the following label: self

如何创建一个 PYMC 确定性变量,其父级是类的属性?

附:不确定是否重要,但我使用的是 PYMC 2.x

【问题讨论】:

    标签: python python-2.7 pymc


    【解决方案1】:

    感谢this 温和相关的问题,我能够找到一种方法将类属性作为父级捕获到 PYMC 确定性变量。解决方案是使用 PYMC 的 Lambda 类,它将 Python lambda 函数转换为确定性实例。这似乎是一种相当干净的方式。

    self.tau = pymc.Lambda('tau', lambda s = self.sigma: 1.0/(s**2))
    

    【讨论】:

      猜你喜欢
      • 2016-03-21
      • 2020-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多