pymc3 Heaviside阶跃函数

问题描述 投票:1回答:1

在pymc3中,如何将Heaviside阶跃函数用作确定性转换?

任何步进函数都可以使用,但我想问的是Heaviside步进函数专门用于将其与文档中称为“步进函数”的歧义区分开来,后者是在讨论sampling步进,与我正在寻找的东西使找到相关文档变得很难找到(如果存在)。另外,我也找不到某个地方记录了所有受支持的转换。

我想要1 if x >= 0 else 0,但是按原样编写它不会起作用,因为大概x >= 0会求值为对象,因此if表达式将立即求值为1,然后h始终为1 。

import pymc3 as pm

with pm.Model() as model:
    x = pm.Normal('x', mu=0, sigma=1)
    h = pm.Deterministic('h', 1 if x >= 0 else 0)  # ???
python bayesian pymc3
1个回答
1
投票

尝试使用theano.tensor.switch。也就是说,

theano.tensor.switch
© www.soinside.com 2019 - 2024. All rights reserved.