Как я могу определить пользовательскую вероятность в PyMC3? В PyMC2 я мог бы использовать @pymc.potential
. Я пытался использовать pymc.Potential
в PyMC3, однако кажется, что логические операции нельзя применять к параметрам (я получаю сообщение об ошибке типа это, когда я делаю это). Например, следующий код не работает:
from pymc import *
with Model() as model:
x = Normal('x', 1, 1)
def z(u):
if u > 0: #comparisons like this are not supported
# if theano.tensor.lt(0,u): this is how comparison should be done
return u ** 2
return -u**3
x2 = Potential('x2', z(x))
start = model.test_point
h = find_hessian(start)
step = Metropolis(model.vars, h)
sample(100, step, start)
Я не могу изменить все сравнения внутри вероятности на синтаксис Theano (т.е. theano.tensor.{lt,le,eq,neq,gt,ge}). Можно ли в любом случае использовать определение функции правдоподобия, аналогичной PyMC2?