def __init__(self, num_dimensions, num_initial_components, initial_mixture_prior_variance, cart_likelihood_var, conf_likelihood_var, config): self.cart_likelihood_var = cart_likelihood_var self.conf_likelihood_var = conf_likelihood_var filepath = "planar_n_link/" + str( num_dimensions) + '/' + datetime.datetime.now().strftime( "%Y-%m-%d_%H%M%S") + '/' AbstractVIPSExperiment.__init__(self, filepath, num_dimensions, num_initial_components, initial_mixture_prior_variance) [self.target_lnpdf, self.prior, self.prior_chol ] = build_target_likelihood_planar_n_link(num_dimensions, conf_likelihood_var, cart_likelihood_var) self.groundtruth_samples = None self.groundtruth_lnpdfs = None self.config = config # add plot for robot visualization def all_plots(sampler): plt.figure(100) plt.clf() [weights, means, _] = sampler.vips_c.get_model() visualize_mixture(weights, means) default_plots(sampler) changes_in_functions = { 'plot_fctn': all_plots, } ConfigUtils.merge_FUNCTIONS(config, changes_in_functions)
import numpy as np from sampler.PTMCMC.PTMCMCSampler.PTMCMCSampler import PTSampler from experiments.lnpdfs.create_target_lnpfs import build_target_likelihood_planar_n_link from time import time from mpi4py import MPI num_dimensions = 10 conf_likelihood_var = 4e-2 * np.ones(num_dimensions) conf_likelihood_var[0] = 1 cart_likelihood_var = np.array([1e-4, 1e-4]) [target_lnpdf, prior, prior_chol] = build_target_likelihood_planar_n_link(num_dimensions, conf_likelihood_var, cart_likelihood_var) def sample(n, path, known_prior, comm=MPI.COMM_WORLD): if known_prior: def lnlikefn(theta): lnlikefn.counter += 1 return target_lnpdf(theta, without_prior=True) def lnpriorfn(theta): return prior.logpdf(theta) else: def lnlikefn(theta): lnlikefn.counter += 1 return target_lnpdf(theta, without_prior=False)
from scipy.stats import multivariate_normal as normal import numpy as np from time import time from experiments.lnpdfs.create_target_lnpfs import build_target_likelihood_planar_n_link from sampler.SliceSampling.slice_sampler import slice_sample num_dimensions = 3 conf_likelihood_var = 4e-2 * np.ones(num_dimensions) conf_likelihood_var[0] = 1 cart_likelihood_var = np.array([1e-4, 1e-4]) lnpdf = build_target_likelihood_planar_n_link(num_dimensions, conf_likelihood_var, cart_likelihood_var)[0] prior = normal(np.zeros((num_dimensions)), conf_likelihood_var * np.eye((num_dimensions))) initial = prior.rvs(1) def sample(n_samps, sigma, path): start = time() [samples, fevals, timestamps] = slice_sample(lnpdf, initial, n_samps, sigma * np.ones(num_dimensions)) timestamps -= start samples = samples.transpose().reshape(len(timestamps), -1, 3).copy() np.savez(path + 'processed_data', samples=samples, fevals=fevals, timestamps=timestamps)