return plotfunc if __name__ == '__main__': num_iterations = 500 num_samples = 100 weights = [1./5, 4./5] mus = [np.array([-4]), np.array([4])] sigmas = [np.eye(1), np.eye(1)] toy_init_particles = sample_gmm(num_samples, [1.], [np.array([10])], [np.eye(1)]) # a = -10 # b = 10 # toy_init_particles = np.random.rand(100).reshape(-1, 1)*(b - a) + a true_samples = sample_gmm(num_samples, weights, mus, sigmas) plotfunc = get_plotfunc(true_samples) log_lik_func = log_lik_gmm(weights, mus, sigmas) report_metrics = metrics(log_lik_func) toy_score = gmm_gld(weights, mus, sigmas)
def metrics(log_lik_func): def report_metrics(particles): print("Log Likelihood: {}".format(log_lik_func(particles))) return report_metrics if __name__ == '__main__': num_iterations = 5000 num_samples = 100 weights = [1] mus = [np.array([0, 0])] sigmas = [np.eye(2)] init_particles = sample_gmm(num_samples, [1.], [np.array([-7, -7])], [np.eye(2)]) true_samples = sample_gmm(num_samples, weights, mus, sigmas) plotfunc = get_plotfunc(true_samples) gld = gmm_gld(weights, mus, sigmas) svgd = SVGD(gld=gld) log_lik_func = log_lik_gmm(weights, mus, sigmas) report_metrics = metrics(log_lik_func) particles = svgd.do_svgd_iterations_optimized( init_particles=init_particles,
plt.savefig('./plots/hmc/1d_multimodal_medium_equal_other_side.png') plt.close() return plotfunc if __name__ == '__main__': num_samples = 100 weights = [1. / 5, 4. / 5] mus = [np.array([-4]), np.array([4])] sigmas = [np.eye(1), np.eye(1)] true_samples = sample_gmm(num_samples, weights, mus, sigmas) plotfunc = get_plotfunc(true_samples) log_pdf = log_gmm_pdf_vectorized(weights, mus, sigmas) target_energy = lambda x: -log_pdf(x) gld = gmm_gld(weights, mus, sigmas) target_grad = lambda x: -gld(x) #define other parameters params = { 'u_energy': target_energy, 'u_grad': target_grad,