어떻게 결정 론적 벡터 연산을 PYMC3에서 구현할 수 있습니까? 예 : 모델 :PYMC3에서 결정적인 벡터 연산을 추가하는 방법은 무엇입니까?
M ~ Unif(-5, 5)
S ~ Unif(0, |1/M|)
data ~ Normal(M, S)
M은 가우스 관측 값의 평균이고 S는 표준 편차입니다. 표준 편차는 [0, | 1/M |] (M이 음수 일 때 필요한 절대 값)에 균일하게 분포한다고 가정합니다.
이 코드 :
File "/Users/mvd/anaconda/lib/python2.7/site-packages/pymc3/distributions/distribution.py", line 67, in get_test_val
str(defaults) + " pass testval argument or adjust so value is finite.")
AttributeError: <pymc3.distributions.continuous.Uniform object at 0x10d1e1f10> has no finite default value to use, checked: ['median', 'mean', 'mode'] pass testval argument or adjust so value is finite.
내가 벡터에이 작업을 달성하기 위해 theano를 사용할 필요가 수행
import pymc3 as pm
import numpy as np
size = 20
with pm.Model() as model:
# M ~ Unif(-5, 5)
M = pm.Uniform("M", -5., 5., shape=size)
# S ~ Unif(0, |1/M|)
# how to divide by vector and take abs val?
S = pm.Uniform("S", np.zeros(size), abs(1./M), shape=size)
data = pm.Normal("data", M, sd=S, shape=size)
는 오류가?
감사합니다. 또한 : PYMC3에서''abs (1./M)''처럼 무작위 변수의 결정 론적 표현을 언제 사용할 수 있습니까? 왜''pm.Uniform ("S", np.zeros (size), abs (1./M), shape = size)''단순히 작동합니까? – jll
당신은 오신 것을 환영합니다. Theano는'/'와 같은 연산자를 이해하고 파이썬/NumPy와 theano 변수를 일반적으로 혼합 할 수 있습니다. 직접 할 수없는 일은 python/NumPy 변수를 기대하는 함수에 theano 변수를 사용하는 것입니다. 이 경우'as_op' 데코레이터를 사용할 수 있습니다. – aloctavodia