Esempio n. 1
0
    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))
Esempio n. 2
0
                                                 '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')
Esempio n. 3
0
#
#         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)
Esempio n. 4
0
def random():
    pyprob.seed(123)