def test_merge_traces_diff_lengths(self): with self.model: strace0 = self.backend(self.name) strace0.setup(self.draws, 1) for i in range(self.draws): strace0.record(self.test_point) strace0.close() mtrace0 = base.MultiTrace([self.strace0]) with self.model: strace1 = self.backend(self.name) strace1.setup(2 * self.draws, 1) for i in range(2 * self.draws): strace1.record(self.test_point) strace1.close() mtrace1 = base.MultiTrace([strace1]) with pytest.raises(ValueError): base.merge_traces([mtrace0, mtrace1])
def _mp_sample(njobs, args): p = mp.Pool(njobs) traces = p.map(argsample, args) p.close() return merge_traces(traces)
def _mp_sample(njobs, args): p = mp.Pool(njobs) traces = p.map(argsample, args) p.close() return merge_traces(traces)
def test_merge_traces_nonunique(self): mtrace0 = base.MultiTrace([self.strace0]) mtrace1 = base.MultiTrace([self.strace1]) with pytest.raises(ValueError): base.merge_traces([mtrace0, mtrace1])
def test_merge_traces_no_traces(self): with pytest.raises(ValueError): base.merge_traces([])
with pm.Model() as model: alpha = pm.Normal('alpha', mu=0, sd=20) beta = pm.Normal('beta', mu=0, sd=20) sigma = pm.Uniform('sigma', lower=0) y = pm.Normal('y', mu=beta*X + alpha, sd=sigma, observed=Y) start = pm.find_MAP() step = pm.NUTS(state=start) with model: if(multicore): trace = pm.sample(itenum, step, start=start, njobs=chainnum, random_seed=range(chainnum), progress_bar=False) else: ts=[pm.sample(itenum, step, chain=i, progressbar=False) for i in range(chainnum)] trace=merge_traces(ts) if(saveimage): pm.traceplot(trace).savefig("simple_linear_trace.png") print "Rhat="+str(pm.gelman_rubin(trace)) t1=time.clock() print "elapsed time="+str(t1-t0) #trace if(not multicore): trace=ts[0] with model: pm.traceplot(trace,model.vars) pm.forestplot(trace)