def setUpClass(cls): cls.test_point, cls.model, _ = models.beta_bernoulli(cls.shape) with cls.model: strace0 = cls.backend(cls.name) strace1 = cls.backend(cls.name) cls.draws = 5 strace0.setup(cls.draws, chain=0) strace1.setup(cls.draws, chain=1) varnames = list(cls.test_point.keys()) shapes = {varname: value.shape for varname, value in cls.test_point.items()} dtypes = {varname: value.dtype for varname, value in cls.test_point.items()} cls.expected = {0: {}, 1: {}} for varname in varnames: mcmc_shape = (cls.draws,) + shapes[varname] values = np.arange(cls.draws * np.prod(shapes[varname]), dtype=dtypes[varname]) cls.expected[0][varname] = values.reshape(mcmc_shape) cls.expected[1][varname] = values.reshape(mcmc_shape) * 100 for idx in range(cls.draws): point0 = {varname: cls.expected[0][varname][idx, ...] for varname in varnames} point1 = {varname: cls.expected[1][varname][idx, ...] for varname in varnames} strace0.record(point=point0) strace1.record(point=point1) strace0.close() strace1.close() cls.mtrace = base.MultiTrace([strace0, strace1])
def setup_method(self): self.test_point, self.model, _ = models.beta_bernoulli(self.shape) with self.model: self.strace = self.backend(self.name) self.draws, self.chain = 3, 0 if not hasattr(self, "sampler_vars"): self.sampler_vars = None if self.sampler_vars is not None: assert self.strace.supports_sampler_stats self.strace.setup(self.draws, self.chain, self.sampler_vars) else: self.strace.setup(self.draws, self.chain)
def setup_method(self): self.test_point, self.model, _ = models.beta_bernoulli(self.shape) with self.model: self.strace = self.backend(self.name) self.draws, self.chain = 3, 0 if not hasattr(self, 'sampler_vars'): self.sampler_vars = None if self.sampler_vars is not None: assert self.strace.supports_sampler_stats self.strace.setup(self.draws, self.chain, self.sampler_vars) else: self.strace.setup(self.draws, self.chain)
def setUp(self): self.test_point, self.model, _ = models.beta_bernoulli(self.shape) with self.model: self.strace = self.backend(self.name) self.draws, self.chain = 3, 0 self.strace.setup(self.draws, self.chain)
def setup_class(cls): cls.test_point, cls.model, _ = models.beta_bernoulli(cls.shape) if hasattr(cls, "write_partial_chain") and cls.write_partial_chain is True: cls.chain_vars = cls.model.unobserved_RVs[1:] else: cls.chain_vars = cls.model.unobserved_RVs with cls.model: strace0 = cls.backend(cls.name, vars=cls.chain_vars) strace1 = cls.backend(cls.name, vars=cls.chain_vars) if not hasattr(cls, "sampler_vars"): cls.sampler_vars = None cls.draws = 5 if cls.sampler_vars is not None: strace0.setup(cls.draws, chain=0, sampler_vars=cls.sampler_vars) strace1.setup(cls.draws, chain=1, sampler_vars=cls.sampler_vars) else: strace0.setup(cls.draws, chain=0) strace1.setup(cls.draws, chain=1) varnames = list(cls.test_point.keys()) shapes = {varname: value.shape for varname, value in cls.test_point.items()} dtypes = {varname: value.dtype for varname, value in cls.test_point.items()} cls.expected = {0: {}, 1: {}} for varname in varnames: mcmc_shape = (cls.draws,) + shapes[varname] values = np.arange(cls.draws * np.prod(shapes[varname]), dtype=dtypes[varname]) cls.expected[0][varname] = values.reshape(mcmc_shape) cls.expected[1][varname] = values.reshape(mcmc_shape) * 100 if cls.sampler_vars is not None: cls.expected_stats = {0: [], 1: []} for vars in cls.sampler_vars: stats = {} cls.expected_stats[0].append(stats) cls.expected_stats[1].append(stats) for key, dtype in vars.items(): if dtype == np.bool: stats[key] = np.zeros(cls.draws, dtype=dtype) else: stats[key] = np.arange(cls.draws, dtype=dtype) for idx in range(cls.draws): point0 = {varname: cls.expected[0][varname][idx, ...] for varname in varnames} point1 = {varname: cls.expected[1][varname][idx, ...] for varname in varnames} if cls.sampler_vars is not None: stats1 = [ {key: val[idx] for key, val in stats.items()} for stats in cls.expected_stats[0] ] stats2 = [ {key: val[idx] for key, val in stats.items()} for stats in cls.expected_stats[1] ] strace0.record(point=point0, sampler_stats=stats1) strace1.record(point=point1, sampler_stats=stats2) else: strace0.record(point=point0) strace1.record(point=point1) strace0.close() strace1.close() cls.mtrace = base.MultiTrace([strace0, strace1]) cls.stat_dtypes = {} cls.stats_counts = collections.Counter() for stats in cls.sampler_vars or []: cls.stat_dtypes.update(stats) cls.stats_counts.update(stats.keys())
def setup_method(self): self.test_point, self.model, _ = models.beta_bernoulli(self.shape) self.draws, self.chain = 3, 0
def setup_class(cls): cls.test_point, cls.model, _ = models.beta_bernoulli(cls.shape) with cls.model: strace0 = cls.backend(cls.name) strace1 = cls.backend(cls.name) if not hasattr(cls, 'sampler_vars'): cls.sampler_vars = None cls.draws = 5 if cls.sampler_vars is not None: strace0.setup(cls.draws, chain=0, sampler_vars=cls.sampler_vars) strace1.setup(cls.draws, chain=1, sampler_vars=cls.sampler_vars) else: strace0.setup(cls.draws, chain=0) strace1.setup(cls.draws, chain=1) varnames = list(cls.test_point.keys()) shapes = {varname: value.shape for varname, value in cls.test_point.items()} dtypes = {varname: value.dtype for varname, value in cls.test_point.items()} cls.expected = {0: {}, 1: {}} for varname in varnames: mcmc_shape = (cls.draws,) + shapes[varname] values = np.arange(cls.draws * np.prod(shapes[varname]), dtype=dtypes[varname]) cls.expected[0][varname] = values.reshape(mcmc_shape) cls.expected[1][varname] = values.reshape(mcmc_shape) * 100 if cls.sampler_vars is not None: cls.expected_stats = {0: [], 1: []} for vars in cls.sampler_vars: stats = {} cls.expected_stats[0].append(stats) cls.expected_stats[1].append(stats) for key, dtype in vars.items(): if dtype == np.bool: stats[key] = np.zeros(cls.draws, dtype=dtype) else: stats[key] = np.arange(cls.draws, dtype=dtype) for idx in range(cls.draws): point0 = {varname: cls.expected[0][varname][idx, ...] for varname in varnames} point1 = {varname: cls.expected[1][varname][idx, ...] for varname in varnames} if cls.sampler_vars is not None: stats1 = [dict((key, val[idx]) for key, val in stats.items()) for stats in cls.expected_stats[0]] stats2 = [dict((key, val[idx]) for key, val in stats.items()) for stats in cls.expected_stats[1]] strace0.record(point=point0, sampler_stats=stats1) strace1.record(point=point1, sampler_stats=stats2) else: strace0.record(point=point0) strace1.record(point=point1) strace0.close() strace1.close() cls.mtrace = base.MultiTrace([strace0, strace1]) cls.stat_dtypes = {} cls.stats_counts = collections.Counter() for stats in cls.sampler_vars or []: cls.stat_dtypes.update(stats) cls.stats_counts.update(stats.keys())