Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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)