Exemple #1
0
    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])
Exemple #2
0
def _mp_sample(njobs, args):
    p = mp.Pool(njobs)
    traces = p.map(argsample, args)
    p.close()
    return merge_traces(traces)
Exemple #3
0
def _mp_sample(njobs, args):
    p = mp.Pool(njobs)
    traces = p.map(argsample, args)
    p.close()
    return merge_traces(traces)
Exemple #4
0
    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])
Exemple #5
0
 def test_merge_traces_no_traces(self):
     with pytest.raises(ValueError):
         base.merge_traces([])
Exemple #6
0
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)