Example #1
0
        synthesized_programs = int(out.decode("utf-8"))
        print(synthesized_programs)
        return synthesized_programs


domainMax = None
try:
    domainMax = int(os.environ['DOMAIN_MAX'])
    acquisition_type = os.environ['ACQUISITION']
except KeyError:
    domainMax = 2 if domainMax is None else domainMax
    acquisition_type = 'EI'

domain = [{
    'name': "var-" + gadget,
    'type': 'discrete',
    'domain': tuple(range(0, domainMax))
} for gadget in vocab]
print(domain, acquisition_type)

myBopt = BayesianOptimization(f,
                              domain,
                              maximize=True,
                              exact_feval=True,
                              acquisition_optimizer_type='lbfgs',
                              acquisition_type=acquisition_type)
myBopt.run_optimization(max_iter=35)
myBopt.save_report("report")
myBopt.save_evaluations("evals")
myBopt.plot_convergence("convergence.png")
Example #2
0
        Y_init = np.reshape(np.array(array_y), (-1, 1))
        for ind, cost in enumerate(array_cost):
            list_sampled_x.append(array_sampled_x[ind, :])
            list_y.append(array_y[ind])
            list_cost.append(array_cost[ind])
        max_iter = max_iter_ - len(list_y)
        obj_count = len(list_y) - 1

    myBO = BayesianOptimization(f=obj_val,
                                domain=domain,
                                constraints=constraints,
                                X=X_init,
                                Y=Y_init,
                                initial_design_numdata=initial_design_numdata,
                                initial_design_type='latin',
                                acquisition_type=acq,
                                maximize=is_max)
    myBO.run_optimization(max_iter=max_iter)
    myBO.save_report(report_file=txt_path + '_report.txt')
    myBO.save_evaluations(evaluations_file=txt_path + '_evaluations.txt')
    myBO.save_models(txt_path + '_models.txt')
    result = {
        'sampled_x': np.array(list_sampled_x),
        'observed_y': np.array(list_y),
        'cost': np.array(list_cost),
        'random_seeds': random_seeds
    }
    with open(txt_path + '_result.txt', "w") as file:
        file.write(str(result))
    with open(txt_path + '_result.pickle', "wb") as file:
        pickle.dump(result, file)
Example #3
0
def trained_val_score(parameters):
    parameters = parameters[0]
    print("The current parameters are: ",
          str(np.around(parameters[0], decimals=6)) + ' ',
          str(np.around(parameters[1], decimals=6)) + ' ',
          str(np.around(parameters[2], decimals=6)) + ' ',
          str(int(parameters[3])))
    siamese_net = build_siamese_net(parameters[0], parameters[1],
                                    parameters[2])
    score = train_siamese_net(siamese_net, int(parameters[3]))
    SAVE_PATH = MODELS_DIR + '/model' + '_' + \
                str(np.around(parameters[0], decimals=6)) + '_' + \
                str(np.around(parameters[1], decimals=6)) + '_' + \
                str(np.around(parameters[2], decimals=6)) + '_' + \
                str(int(parameters[3])) + '_' + \
                'score_' + str(score) + '.h5'
    siamese_net.save(SAVE_PATH)
    K.clear_session()
    return score


optimizer = BayesianOptimization(f=trained_val_score,
                                 domain=bds,
                                 model_type='GP',
                                 initial_design_numdata=10,
                                 acquisition_type='EI',
                                 maximize=True)

optimizer.run_optimization(max_iter=args.max_iter)
optimizer.save_report(report_file=MODELS_DIR + '/optimization_report')