Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_add_weights(self):
weights1 = np.zeros((2,4))
weights2 = np.ones((2,4))
# test whether production mode only stores the last set of parameters
journal_prod = Journal(0)
journal_prod.add_weights(weights1)
journal_prod.add_weights(weights2)
self.assertEqual(len(journal_prod.weights), 1)
np.testing.assert_equal(journal_prod.weights[0], weights2)
# test whether reconstruction mode stores all parameter sets
journal_recon = Journal(1)
journal_recon.add_weights(weights1)
journal_recon.add_weights(weights2)
self.assertEqual(len(journal_recon.weights), 2)
np.testing.assert_equal(journal_recon.weights[0], weights1)
np.testing.assert_equal(journal_recon.weights[1], weights2)
def test_add_opt_values(self):
opt_values1 = np.zeros((2,4))
opt_values2 = np.ones((2,4))
# test whether production mode only stores the last set of parameters
journal_prod = Journal(0)
journal_prod.add_opt_values(opt_values1)
journal_prod.add_opt_values(opt_values2)
self.assertEqual(len(journal_prod.opt_values), 1)
np.testing.assert_equal(journal_prod.opt_values[0], opt_values2)
# test whether reconstruction mode stores all parameter sets
journal_recon = Journal(1)
journal_recon.add_opt_values(opt_values1)
journal_recon.add_opt_values(opt_values2)
self.assertEqual(len(journal_recon.opt_values), 2)
np.testing.assert_equal(journal_recon.opt_values[0], opt_values1)
np.testing.assert_equal(journal_recon.opt_values[1], opt_values2)
def test_add_weights(self):
weights1 = np.zeros((2,4))
weights2 = np.ones((2,4))
# test whether production mode only stores the last set of parameters
journal_prod = Journal(0)
journal_prod.add_weights(weights1)
journal_prod.add_weights(weights2)
self.assertEqual(len(journal_prod.weights), 1)
np.testing.assert_equal(journal_prod.weights[0], weights2)
# test whether reconstruction mode stores all parameter sets
journal_recon = Journal(1)
journal_recon.add_weights(weights1)
journal_recon.add_weights(weights2)
self.assertEqual(len(journal_recon.weights), 2)
np.testing.assert_equal(journal_recon.weights[0], weights1)
np.testing.assert_equal(journal_recon.weights[1], weights2)
print(journal.parameters)
print(journal.weights)
# do post analysis
print(journal.posterior_mean())
print(journal.posterior_cov())
print(journal.posterior_histogram())
# print configuration
print(journal.configuration)
# save and load journal
journal.save("experiments.jnl")
from abcpy.output import Journal
new_journal = Journal.fromFile('experiments.jnl')
print(journal.parameters)
print(journal.weights)
# do post analysis
print(journal.posterior_mean())
print(journal.posterior_cov())
print(journal.posterior_histogram())
# print configuration
print(journal.configuration)
# save and load journal
journal.save("experiments.jnl")
from abcpy.output import Journal
new_journal = Journal.fromFile('experiments.jnl')
The default value is 0, meaning the intermediate results are not saved.
Returns
-------
abcpy.output.Journal
A journal containing simulation results, metadata and optionally intermediate results.
"""
global broken_preemptively
self.sample_from_prior(rng=self.rng)
self.accepted_parameters_manager.broadcast(self.backend, observations)
self.epsilon = epsilon
self.n_samples = n_samples
self.n_samples_per_param = n_samples_per_param
if(journal_file is None):
journal = Journal(full_output)
journal.configuration["type_model"] = [type(model).__name__ for model in self.model]
journal.configuration["type_dist_func"] = type(self.distance).__name__
journal.configuration["type_kernel_func"] = type(self.kernel)
journal.configuration["n_samples"] = self.n_samples
journal.configuration["n_samples_per_param"] = self.n_samples_per_param
journal.configuration["beta"] = beta
journal.configuration["delta"] = delta
journal.configuration["v"] = v
journal.configuration["ar_cutoff"] = ar_cutoff
journal.configuration["resample"] = resample
journal.configuration["n_update"] = n_update
journal.configuration["adaptcov"] = adaptcov
journal.configuration["full_output"] = full_output
else:
journal = Journal.fromFile(journal_file)
full_output: integer, optional
If full_output==1, intermediate results are included in output journal.
The default value is 0, meaning the intermediate results are not saved.
Returns
-------
abcpy.output.Journal
A journal containing simulation results, metadata and optionally intermediate results.
"""
self.observations_bds = self.backend.broadcast(observations)
self.alpha = alpha
self.n_samples = n_samples
self.n_samples_per_param = n_samples_per_param
journal = Journal(full_output)
journal.configuration["type_model"] = type(self.model)
journal.configuration["type_dist_func"] = type(self.distance)
journal.configuration["n_samples"] = self.n_samples
journal.configuration["n_samples_per_param"] = self.n_samples_per_param
journal.configuration["steps"] = steps
accepted_parameters = None
accepted_cov_mat = None
accepted_dist = None
# main RSMCABC algorithm
# print("INFO: Starting RSMCABC iterations.")
for aStep in range(steps):
# 0: Compute epsilon, compute new covariance matrix for Kernel,
# and finally Drawing new new/perturbed samples using prior or MCMC Kernel
print(journal.get_stored_output_values())
print(journal.weights)
# do post analysis
print(journal.posterior_mean())
print(journal.posterior_cov())
print(journal.posterior_histogram())
# print configuration
print(journal.configuration)
# save and load journal
journal.save("experiments.jnl")
from abcpy.output import Journal
new_journal = Journal.fromFile('experiments.jnl')
The default value is 0, meaning the intermediate results are not saved.
Returns
-------
abcpy.output.Journal
A journal containing simulation results, metadata and optionally intermediate results.
"""
self.sample_from_prior(rng=self.rng)
self.accepted_parameters_manager.broadcast(self.backend, observations)
self.alpha = alpha
self.n_samples = n_samples
self.n_samples_per_param = n_samples_per_param
if(journal_file is None):
journal = Journal(full_output)
journal.configuration["type_model"] = [type(model).__name__ for model in self.model]
journal.configuration["type_dist_func"] = type(self.distance).__name__
journal.configuration["n_samples"] = self.n_samples
journal.configuration["n_samples_per_param"] = self.n_samples_per_param
journal.configuration["steps"] = steps
else:
journal = Journal.fromFile(journal_file)
accepted_parameters = None
accepted_weights = None
accepted_cov_mats = None
accepted_dist = None
alpha_accepted_parameters = None
alpha_accepted_weights = None
alpha_accepted_dist = None