4
PyMC3에서 어떻게 사용자 정의 가능성을 정의 할 수 있습니까? PyMC2에서는 @pymc.potential
을 사용할 수 있습니다. 나는 PyMC3에서 pymc.Potential
을 사용하려고 시도했지만, 부울 연산이 매개 변수에 적용될 수없는 것으로 보인다. (내가 할 때 this과 같은 오류가 발생한다.) 예를 들어, 다음 코드는 작동하지 않습니다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, 제작, EQ, NEQ,한다 수 없습니다. , ge}). 어쨌든 PyMC2와 비슷한 우도 함수를 정의 할 수 있습니까?
그리고 클래스에 속해 있기 때문에 서명에 'self'가있는 결정 론적 함수를 정의하는 방법은 무엇입니까? 제발 저의 관련 게시물을보십시오 –
결정된 함수에 대해 아무 것도하지 않아도됩니다. 샘플링 된 값을 트레이스에 보관하고 싶지 않은 경우에는 'Determinstic' 호출로 래핑 할 수 있습니다. 문서를 참조하십시오. –
불행히도 이것은 간단하지 않고 doc에서 정보를 찾지 못했습니다 ... '건설 중'이라고합시다. –