def setup_logger(self, verbose=False): h = pd.read_pickle(self.hist_path) if os.path.exists( self.hist_path) else None if h is not None: print("Resuming from %s..." % self.hist_path) tasks = [ opt_tools.tasks.DisplayOptimisation(opt_tools.seq_exp_lin(1.1, 20)), opt_tools.tasks.GPflowLogOptimisation( opt_tools.seq_exp_lin(1.1, 20)), # Uncomment to keep track of exact lml bound. This causes problems with memory sometimes. # exp_tools.GPflowMultiClassificationTrackerLml( # self.Xt[:, :], self.Yt[:, :], itertools.count(1800, 1800), trigger="time", # verbose=True, store_x="final_only", store_x_columns=".*(variance|lengthscales)"), opt_tools.gpflow_tasks.GPflowMultiClassificationTracker( self.Xt[:, :], self.Yt[:, :], itertools.count(300, 1000), trigger="time", verbose=True, store_x="final_only", store_x_columns=".*(variance|lengthscales)", old_hist=h), opt_tools.tasks.StoreOptimisationHistory(self.hist_path, opt_tools.seq_exp_lin( 1.5, 600, start_jump=30), trigger="time", verbose=False), opt_tools.tasks.Timeout(self.run_settings.get("timeout", np.inf)) ] tasks[2].pred_batch_size = self.pred_batch_size self.logger = opt_tools.GPflowOptimisationHelper(self.m, tasks)
def setup_logger(self, verbose=None): h = pd.read_pickle(self.hist_path) if os.path.exists(self.hist_path) else None if h is not None: print("Resuming from %s..." % self.hist_path) tasks = [ opt_tools.tasks.DisplayOptimisation(opt_tools.seq_exp_lin(1.1, 20)), opt_tools.tasks.GPflowLogOptimisation(opt_tools.seq_exp_lin(1.1, 20)), opt_tools.gpflow_tasks.GPflowBinClassTracker(self.Xt[self.test_slice, :], self.Yt[self.test_slice, :], opt_tools.seq_exp_lin(1.1, 80, 3), verbose=True, store_x="final_only", store_x_columns='.*(variance|lengthscales)', old_hist=h), opt_tools.tasks.StoreOptimisationHistory(self.hist_path, itertools.count(0, 60), verbose=False) ] self.logger = opt_tools.GPflowOptimisationHelper(self.m, tasks)
def setUp(self): X = np.linspace(0, 5, 100)[:, None] Y = 0.3 * np.sin(2 * X) + 0.05 * rnd.randn(*X.shape) # model = gpflow.sgpr.SGPR(X, Y, gpflow.kernels.RBF(1), X[rnd.permutation(len(X))[:3], :]) model = gpflow.sgpr.SGPR(X, Y, gpflow.kernels.RBF(1), X[:3, :].copy()) model._compile() self.optlog = ot.GPflowOptimisationHelper( model, [ ot.tasks.DisplayOptimisation(ot.seq_exp_lin(1.0, 1.0)), ot.tasks.GPflowLogOptimisation(ot.seq_exp_lin(1.0, 1.0), store_fullg=True, store_x=True), ot.tasks.StoreOptimisationHistory('./opthist.pkl', ot.seq_exp_lin(1.0, np.inf, 5.0, 5.0), verbose=True) ] )
def setUp(self): X = np.linspace(0, 5, 100)[:, None] Y = 0.3 * np.sin(2 * X) + 0.05 * rnd.randn(*X.shape) # model = GPflow.sgpr.SGPR(X, Y, GPflow.kernels.RBF(1), X[rnd.permutation(len(X))[:3], :]) model = GPflow.sgpr.SGPR(X, Y, GPflow.kernels.RBF(1), X[:3, :].copy()) model._compile() self.optlog = ot.GPflowOptimisationHelper( model, [ ot.tasks.DisplayOptimisation(ot.seq_exp_lin(1.0, 1.0)), ot.tasks.GPflowLogOptimisation(ot.seq_exp_lin(1.0, 1.0), store_fullg=True, store_x=True), ot.tasks.StoreOptimisationHistory('./opthist.pkl', ot.seq_exp_lin(1.0, np.inf, 5.0, 5.0), verbose=True) ] )
def setup_logger(self, verbose=False): h = pd.read_pickle(self.hist_path) if os.path.exists(self.hist_path) else None if h is not None: print("Resuming from %s..." % self.hist_path) tasks = [ opt_tools.tasks.DisplayOptimisation(opt_tools.seq_exp_lin(1.1, 20)), opt_tools.tasks.GPflowLogOptimisation(opt_tools.seq_exp_lin(1.1, 20)), exp_tools.GPflowMultiClassificationTrackerLml( self.Xt[:, :], self.Yt[:, :], itertools.count(1800, 1800), trigger="time", verbose=True, store_x="final_only", store_x_columns=".*(variance|lengthscales)"), opt_tools.gpflow_tasks.GPflowMultiClassificationTracker( self.Xt[:, :], self.Yt[:, :], opt_tools.seq_exp_lin(1.5, 150, start_jump=30), trigger="time", verbose=True, store_x="final_only", store_x_columns=".*(variance|lengthscales)", old_hist=h), opt_tools.tasks.StoreOptimisationHistory(self.hist_path, opt_tools.seq_exp_lin(1.5, 600, start_jump=30), trigger="time", verbose=False), opt_tools.tasks.Timeout(self.run_settings.get("timeout", np.inf)) ] self.logger = opt_tools.GPflowOptimisationHelper(self.m, tasks)
import matplotlib.pyplot as plt import numpy as np import pandas as pd import scipy.optimize as opt sys.path.append('../..') import opt_tools as ot def f(x): time.sleep(0.1) return [opt.rosen(x), opt.rosen_der(x)] optlog = ot.OptimisationHelper(f, [ ot.tasks.DisplayOptimisation(ot.seq_exp_lin(1.0, 1.0)), ot.tasks.LogOptimisation( ot.seq_exp_lin(1.0, 1.0), store_fullg=True, store_x=True), ot.tasks.StoreOptimisationHistory( './opthist.pkl', ot.seq_exp_lin(1.0, np.inf, 5.0, 5.0), verbose=True) ]) x0 = np.array([-5, -5]) optlog.callback(x0) try: xfin = opt.minimize(f, jac=True, x0=x0, method='CG', callback=optlog.callback, options={'gtol': 0.0})
sys.path.append('..') import opt_tools as ot rnd.seed(4) X = np.linspace(0, 5, 100)[:, None] Y = 0.3 * np.sin(2 * X) + 0.05 * rnd.randn(*X.shape) # model = gpflow.sgpr.SGPR(X, Y, gpflow.kernels.RBF(1), X[rnd.permutation(len(X))[:3], :]) model = gpflow.sgpr.SGPR(X, Y, gpflow.kernels.RBF(1), X[:3, :].copy()) model._compile() optlog = ot.GPflowOptimisationHelper( model, [ ot.tasks.DisplayOptimisation(ot.seq_exp_lin(1.0, 1.0)), ot.tasks.GPflowLogOptimisation(ot.seq_exp_lin(1.0, 1.0), store_fullg=True, store_x=True), ot.tasks.StoreOptimisationHistory('./opthist.pkl', ot.seq_exp_lin(1.0, np.inf, 5.0, 5.0), verbose=True) ] ) optlog.callback(model.get_free_state()) # Start optimisation model.optimize(callback=optlog.callback, disp=False, maxiter=10) optlog.finish(model.get_free_state()) print("Finished first optimisation run. %i iterations." % optlog.hist.i.max()) print("") # Resume optimisation hist = pd.read_pickle('./opthist.pkl') time.sleep(3.0)