# Pick an entropy approximation entropy = FirstOrderEntropyApproximation() # Pick an approximation for the expectation of the joint expectation_functional = ThirdOrderExpectationFunctional(log_p) # Restrictions for mu mu_bounds = (tuple((0., 1.) for i in xrange(log_q.num_dim - 1)) + ((1e-6, None), )) C_bounds = tuple((1e-32, None) for i in xrange(log_q.num_comp * log_q.num_dim)) # Build the ELBO elbo = EvidenceLowerBound(entropy, expectation_functional) print 'ELBO:' print str(elbo) # Optimize the elbo optimizer = Optimizer(elbo) results_file = os.path.join('demos', 'diffusion_left_new_2_cali.pcl') if os.path.exists(results_file): print 'I found:', results_file print 'I am skipping the experiment.' print 'Delete the file if you want to repeat it.' with open(results_file, 'rb') as fd: results = pickle.load(fd) L = results['L'] log_q = results['log_q'] else: L = optimizer.optimize(log_q, tol=1e-3, max_it=10, mu_bounds=mu_bounds, mu_constraints=None, C_bounds=C_bounds) result = {} result['L'] = L
# Pick an entropy approximation entropy = FirstOrderEntropyApproximation() # Pick an approximation for the expectation of the joint expectation_functional = ThirdOrderExpectationFunctional(log_p) # Restrictions for mu mu_bounds = (tuple((0., 1.) for i in xrange(log_q.num_dim - 1)) + ((1e-6, None), )) C_bounds = tuple((1e-32, None) for i in xrange(log_q.num_comp * log_q.num_dim)) # Build the ELBO elbo = EvidenceLowerBound(entropy, expectation_functional) print 'ELBO:' print str(elbo) # Optimize the elbo optimizer = Optimizer(elbo) results_file = os.path.join('demos', 'diffusion_upleft_cali.pcl') if os.path.exists(results_file): print 'I found:', results_file print 'I am skipping the experiment.' print 'Delete the file if you want to repeat it.' with open(results_file, 'rb') as fd: results = pickle.load(fd) L = results['L'] log_q = results['log_q'] else: L = optimizer.optimize(log_q, tol=1e-3, max_it=10, mu_bounds=mu_bounds, mu_constraints=None, C_bounds=C_bounds) result = {} result['L'] = L
# Pick an entropy approximation entropy = FirstOrderEntropyApproximation() # Pick an approximation for the expectation of the joint expectation_functional = ThirdOrderExpectationFunctional(log_p) # Restrictions for mu mu_bounds = (tuple((1e-6, 1) for i in xrange(log_q.num_dim - 1)) + ((1e-6, None), )) C_bounds = tuple((1e-32, None) for i in xrange(log_q.num_comp * log_q.num_dim)) # Build the ELBO elbo = EvidenceLowerBound(entropy, expectation_functional) print 'ELBO:' print str(elbo) # Optimize the elbo optimizer = Optimizer(elbo) results_file = os.path.join('demos', 'catalysis_1_cali.pcl') if os.path.exists(results_file): print 'I found:', results_file print 'I am skipping the experiment.' print 'Delete the file if you want to repeat it.' with open(results_file, 'rb') as fd: results = pickle.load(fd) L = results['L'] log_q = results['log_q'] else: L = optimizer.optimize(log_q, max_it=10, mu_bounds=mu_bounds, C_bounds=C_bounds) result = {} result['L'] = L
# Pick an entropy approximation entropy = FirstOrderEntropyApproximation() # Pick an approximation for the expectation of the joint expectation_functional = ThirdOrderExpectationFunctional(log_p) # Restrictions for mu mu_bounds = (tuple((1e-6, None) for i in xrange(log_q.num_dim - 1)) + ((1e-6, None), )) C_bounds = tuple((1e-10, None) for i in xrange(log_q.num_comp * log_q.num_dim)) # Build the ELBO elbo = EvidenceLowerBound(entropy, expectation_functional) print 'ELBO:' print str(elbo) # Optimize the elbo optimizer = Optimizer(elbo) results_file = os.path.join('demos', 'catalysis_prop_noise_cali.pcl') if os.path.exists(results_file): print 'I found:', results_file print 'I am skipping the experiment.' print 'Delete the file if you want to repeat it.' with open(results_file, 'rb') as fd: results = pickle.load(fd) L = results['L'] log_q = results['log_q'] else: L = optimizer.optimize(log_q, max_it=10, mu_bounds=mu_bounds, C_bounds=C_bounds) result = {} result['L'] = L
n = int(math.sqrt(log_q.num_dim - 1)) for j in xrange(n): c = {} c['type'] = 'eq' c['fun'] = mu_c_fun c['jac'] = mu_c_jac c['args'] = (j, ) mu_constraints.append(c) # Build the ELBO elbo = EvidenceLowerBound(entropy, expectation_functional) print 'ELBO:' print str(elbo) # Optimize the elbo optimizer = Optimizer(elbo) results_file = os.path.join('demos', 'catalysis_full_dmnl_cali.pcl') if os.path.exists(results_file): print 'I found:', results_file print 'I am skipping the experiment.' print 'Delete the file if you want to repeat it.' with open(results_file, 'rb') as fd: results = pickle.load(fd) L = results['L'] log_q = results['log_q'] else: L = optimizer.optimize(log_q, max_it=10, mu_bounds=mu_bounds, mu_constraints=mu_constraints, C_bounds=C_bounds) result = {}