2
나는 Implementing Dirichlet processes for Bayesian semi-parametric models (here 소스)에서 참조 디리클레 프로세스 예를 구현하기 위해 구현하고 싶습니다 3 데코레이터 :디리클레 과정은
그래디언트 계산을 위해 Theano를 사용하는 PyMC 3에서 어떻게 구현합니까?
편집
: 슬프게도 정말 느리고 합성 데이터의 원래 매개 변수를 얻을하지 않습니다with pm.Model() as mod:
conc = Uniform('concentration', lower=0.5, upper=10)
v = Beta('v', alpha=1, beta=conc, shape=n_dp)
p, updates = theano.scan(fn=lambda stick, idx: stick * t.prod(1 - v[:idx]),
outputs_info=None,
sequences=[v, t.arange(n_dp)])
t.set_subtensor(p[-1], 1 - t.sum(p[:-1]))
category = Categorical('category', p, shape=n_algs)
sd = Uniform('precs', lower=0, upper=20, shape=n_dp)
means = Normal('means', mu=0, sd=100, shape=n_dp)
points = Normal('obs',
means[category],
sd=sd[category],
observed=data)
step1 = pm.Slice([conc, v, sd, means])
step3 = pm.ElemwiseCategoricalStep(var=category, values=range(n_dp))
trace = pm.sample(2000, step=[step1, step3], progressbar=True)
: 은 내가 theano.scan
방법을 사용하여 다음과 같은 솔루션을 시도했다.
더 좋은 해결책이 있습니까? 그렇습니다.