def test_util_random_seed(self): samples = 10 stochastic_samples = [] for i in range(samples): pyprob.seed(None) dist = pyprob.distributions.Normal(0, 1) sample = dist.sample() stochastic_samples.append(float(sample)) deterministic_samples = [] for i in range(samples): pyprob.seed(123) dist = pyprob.distributions.Normal(0, 1) sample = dist.sample() deterministic_samples.append(float(sample)) util.eval_print('samples', 'stochastic_samples', 'deterministic_samples') self.assertTrue(not all(sample == stochastic_samples[0] for sample in stochastic_samples)) self.assertTrue( all(sample == deterministic_samples[0] for sample in deterministic_samples))
'graph/posterior_rmh_graph') pyprob.diagnostics.graph(posterior_rmh, file_name=posterior_rmh_graph_file_name) posterior_rmh_graph_aggregated_file_name = os.path.join( results_dir, 'graph_aggregated/posterior_rmh_graph_aggregated') pyprob.diagnostics.graph( posterior_rmh, use_address_base=True, file_name=posterior_rmh_graph_aggregated_file_name) posterior_is.close() posterior_ic.close() posterior_rmh.close() posterior_rmh_gt.close() if __name__ == '__main__': pyprob.seed(1) current_dir = os.path.dirname(os.path.abspath(__file__)) print('Current dir: {}'.format(current_dir)) results_dir = os.path.join(current_dir, 'gum_marsaglia/replace_true') produce_results(replace=True, results_dir=results_dir) results_dir = os.path.join(current_dir, 'gum_marsaglia/replace_false') produce_results(replace=False, results_dir=results_dir) print('Done')
# # posterior = self._model.posterior(1, inference_engine=InferenceEngine.LIGHTWEIGHT_METROPOLIS_HASTINGS, observe={'obs0': 8, 'obs1': 9}) # trace = posterior[0] # trace_addresses_controlled = [v.address for v in trace.variables_controlled] # trace_addresses = [v.address for v in trace.variables] # # util.eval_print('trace', 'trace_addresses_controlled', 'trace_addresses_controlled_correct', 'trace_addresses', 'trace_addresses_correct') # # self.assertEqual(trace_addresses_controlled_correct, trace_addresses_controlled) # self.assertEqual(trace_addresses_correct, trace_addresses) # # def test_trace_posterior_random_walk_metropolis_hastings(self): # trace_addresses_controlled_correct = ['30__forward__x__Uniform__1', '40__forward__y__Uniform__1', '30__forward__x__Uniform__2', '40__forward__y__Uniform__2'] # trace_addresses_correct = ['30__forward__x__Uniform__1', '40__forward__y__Uniform__1', '30__forward__x__Uniform__2', '40__forward__y__Uniform__2', '84__forward__?__Normal__1', '98__forward__?__Normal__1'] # # posterior = self._model.posterior(1, inference_engine=InferenceEngine.RANDOM_WALK_METROPOLIS_HASTINGS, observe={'obs0': 8, 'obs1': 9}) # trace = posterior[0] # trace_addresses_controlled = [v.address for v in trace.variables_controlled] # trace_addresses = [v.address for v in trace.variables] # # util.eval_print('trace', 'trace_addresses_controlled', 'trace_addresses_controlled_correct', 'trace_addresses', 'trace_addresses_correct') # # self.assertEqual(trace_addresses_controlled_correct, trace_addresses_controlled) # self.assertEqual(trace_addresses_correct, trace_addresses) if __name__ == '__main__': pyprob.seed(123) pyprob.set_verbosity(1) unittest.main(verbosity=2)
def random(): pyprob.seed(123)