示例#1
0
 def _init(self, n_suggestions):
   self.batch_size = n_suggestions
   n_init_points = self.config['n_init_points']
   if n_init_points == -1:
     # Special value to use the default 2*D+1 number.
     n_init_points = 2 * self.dim + 1
   self.n_init = max(self.batch_size, n_init_points)
   exp_design = self.config['experimental_design']
   if exp_design == 'latin_hypercube':
     X_init = latin_hypercube(self.n_init, self.dim)
   elif exp_design == 'halton':
     halton_sampler = sampler.Sampler(method='halton', api_config=self.api_config, n_points=self.n_init)
     X_init = halton_sampler.generate(random_state=self.sampler_seed)
     X_init = self.space_x.warp(X_init)
     X_init = to_unit_cube(X_init, self.lb, self.ub)
   elif exp_design == 'lhs_classic_ratio':
     lhs_sampler = sampler.Sampler(
       method='lhs',
       api_config=self.api_config,
       n_points=self.n_init,
       generator_kwargs={'lhs_type': 'classic', 'criterion': 'ratio'})
     X_init = lhs_sampler.generate(random_state=self.sampler_seed)
     X_init = self.space_x.warp(X_init)
     X_init = to_unit_cube(X_init, self.lb, self.ub)
   else:
     raise ValueError(f'Unknown experimental design: {exp_design}.')
   self.X_init = X_init
   if DEBUG:
     print(f'Initialized the method with {self.n_init} points by {exp_design}:')
     print(X_init)
 def restart(self):
     self.turbo._restart()
     self.turbo._X = np.zeros((0, self.turbo.dim))
     self.turbo._fX = np.zeros((0, 1))
     X_init = latin_hypercube(self.turbo.n_init, self.dim)
     self.X_init = from_unit_cube(X_init, self.lb, self.ub)