def worker_process(rank): from learning_objective.hidden_function import evaluate, get_settings lim_domain = get_settings(lim_domain_only=True) while True: comm.send("WORKER is ready", dest=0, tag=WORKER_READY) # tell Master node that I need a new query query = comm.recv(source=0, tag=MPI.ANY_TAG, status=status) tag = status.Get_tag() if tag == SEND_WORKER: # string = "WORKER %3d: The query is: " % rank # print string + str(query) result = evaluate(query, lim_domain) comm.send(result, dest=0, tag=WORKER_DONE) elif tag == EXIT_WORKER: # Worker dies! print "WORKER: Worker %2d exiting" % rank break comm.send(None, dest=0, tag=EXIT_WORKER) # Suicide complete
self.__lo_ci, self.__nn_pred, self.__ei, self.__gamma) def get_dataset(self): return self.__dataset if __name__ == "__main__": t1 = time.time() random.seed(42) # Settings lim_domain = np.array([[-1, -1], [ 1, 1]]) nobs = 50 # number of observed data # Create dataset dataset_X = np.random.uniform(-1, 1, size=(nobs, lim_domain.shape[1])) dataset = evaluate(dataset_X[0, :], lim_domain) for i in range(1, dataset_X.shape[0]): dataset = np.concatenate((dataset, evaluate(dataset_X[i, :], lim_domain))) domain = dataset[:, :-1] # Instantiate Optimizer optimizer = Optimizer(dataset, domain) optimizer.train() selected_points = optimizer.select_multiple() selection_index = 0 selection_size = selected_points.shape[0] # Select a point for _ in range(50):
import matplotlib.pyplot as plt import utilities.optimizer as op import numpy as np # Open file to write times for comparison file_record = open("data/seq_time_data.csv", "a") # Freeze plotting plot_it = False print_statements = False # Get settings relevant to the hidden function being used lim_domain, init_size, additional_query_size, init_query, domain, selection_size = get_settings() # Construct the dataset dataset = evaluate(init_query[0,:], lim_domain) print "Randomly query a set of initial points... ", for query in init_query[1:,:]: dataset = np.concatenate((dataset, evaluate(query, lim_domain)), axis=0) print dataset.shape print "Complete initial dataset acquired" # Begin sequential optimization using NN-LR based query system optimizer = op.Optimizer(dataset, domain) optimizer.train() # Select a series of points to query selected_points = optimizer.select_multiple(selection_size) # (#points, m) array
return np.atleast_2d(domain[select_index, :]) if __name__ == "__main__": print_statements = False # Open file to write times for comparison file_record = open("data/gp_time_data.csv", "a") # Get settings relevant to the hidden function being used lim_domain, init_size, additional_query_size, init_query, domain, selection_size = get_settings( ) # Construct the dataset dataset = evaluate(init_query[0, :], lim_domain) print "Randomly query a set of initial points... ", for query in init_query[1:, :]: dataset = np.concatenate((dataset, evaluate(query, lim_domain)), axis=0) print "Complete initial dataset acquired" # Begin sequential optimization using Gaussian process based query system model = pyGPs.GPR() model.getPosterior(dataset[:, :-1], dataset[:, -1:]) model.optimize(dataset[:, :-1], dataset[:, -1:]) model.predict(domain) y_pred = model.ym
return np.atleast_2d(domain[select_index, :]) if __name__ == "__main__": print_statements = False # Open file to write times for comparison file_record = open("data/gp_time_data.csv", "a") # Get settings relevant to the hidden function being used lim_domain, init_size, additional_query_size, init_query, domain, selection_size = get_settings() # Construct the dataset dataset = evaluate(init_query[0,:], lim_domain) print "Randomly query a set of initial points... ", for query in init_query[1:,:]: dataset = np.concatenate((dataset, evaluate(query, lim_domain)), axis=0) print "Complete initial dataset acquired" # Begin sequential optimization using Gaussian process based query system model = pyGPs.GPR() model.getPosterior(dataset[:,:-1], dataset[:,-1:]) model.optimize(dataset[:,:-1], dataset[:,-1:])
import utilities.optimizer as op import numpy as np # Open file to write times for comparison file_record = open("data/seq_time_data.csv", "a") # Freeze plotting plot_it = False print_statements = False # Get settings relevant to the hidden function being used lim_domain, init_size, additional_query_size, init_query, domain, selection_size = get_settings( ) # Construct the dataset dataset = evaluate(init_query[0, :], lim_domain) print "Randomly query a set of initial points... ", for query in init_query[1:, :]: dataset = np.concatenate((dataset, evaluate(query, lim_domain)), axis=0) print "Complete initial dataset acquired" # Begin sequential optimization using NN-LR based query system optimizer = op.Optimizer(dataset, domain) optimizer.train() # Select a series of points to query selected_points = optimizer.select_multiple( selection_size) # (#points, m) array