2014-11-18 2 views
0

매우 고가의 기능 (매우 적절한 하드웨어에서 1 초당 최대 1 초)을 평가해야하는 pymc 모델을 구축 중입니다. 잠재적 변수를 사용하여 탐구 된 매개 변수 공간을 의미있는 솔루션으로 제한하려고합니다 (내 변수 목록의 합계가 주어진 범위 내에 있어야합니다). 이것은 효과가 있지만 잠재력이 무한한 값을 반환하고 매개 변수 선택을 금지 할 때조차도이 함수가 평가된다는 것을 알게되었습니다. 그걸 막을 수있는 방법이 있습니까? 어떤 평가자가 주어진 평가 순서를 사용하도록 강요 할 수 있습니까? (잠재력이 좋은지 확인하고 허용되면 진행하십시오)의미없는 매개 변수 값에서 함수 평가를 막기 위해 pymc.potential 사용

나는 함수 내부의 잠재력을 사용하여 진행하거나 즉시 반환해야하지만, 더 좋은 방법이 있습니까?

장 - 프랑수아는

답변

0

나는 잠재력의 평가를 주문하는 방법을 알고 아닙니다. 이것은 최선의 방법은 아니지만 시뮬레이션 시작시 매개 변수가 합당한 지 확인할 수 있습니다. 매개 변수가 적당한 범위 내에 있지 않으면 사후를 0으로 만드는 값을 반환 할 수 있습니다.

또 다른 옵션은 가능성에 대한 함수를 만드는 것입니다. 이 함수의 시작 부분에서 매개 변수가 적당한 범위 내에 있는지 확인할 수 있습니다. 그렇지 않은 경우 시뮬레이션을 실행하지 않고 반환 할 수 있습니다. 합리적인 경우 모델을 실행하고 로그 (p)를 계산할 수 있습니다.

이것은 확실히 우아한 해결책은 아니지만 작동해야합니다.

전체 공개 - 필자는 pymc 전문가가 아닙니다.