@@ -622,7 +622,7 @@ def _target_func(
622622 """Invert the cost function because BayesianOptimization maximizes the target"""
623623 return - self .input .cost_func (data , predicted , weights )
624624
625- def run (self , controller : BayesianOptimizerController ) -> BayesianOptimizerOutput :
625+ def run (self , ** opt_kwargs ) -> BayesianOptimizerOutput :
626626 """Execute the optimization
627627
628628 ``BayesianOptimization`` *maximizes* a target function. Therefore, this class
@@ -633,15 +633,25 @@ def run(self, controller: BayesianOptimizerController) -> BayesianOptimizerOutpu
633633 ----------
634634 controller : BayesianOptimizerController
635635 The controller instance used to set the optimization iteration parameters.
636- opt_kwargs
637- Further keyword arguments passed to ``BayesianOptimization.maximize``.
636+ kwargs
637+ Further keyword arguments passed to ``BayesianOptimization.maximize``. Note
638+ that some arguments are also provided by
639+ :py:meth:`BayesianOptimizerController.optimizer_params`.
638640
639641 Returns
640642 -------
641643 output : BayesianOptimizerOutput
642644 Optimization output. :py:attr:`BayesianOptimizerOutput.p_space` stores data
643645 on the sampled parameter space.
644646 """
647+ # Take the controller
648+ try :
649+ controller = opt_kwargs .pop ("controller" )
650+ except KeyError as err :
651+ raise RuntimeError (
652+ "BayesianOptimizer.run requires 'controller' as keyword argument"
653+ ) from err
654+
645655 # Register the controller
646656 for event in (Events .OPTIMIZATION_STEP , Events .OPTIMIZATION_END ):
647657 self .optimizer .subscribe (event , controller )
@@ -662,7 +672,7 @@ def run(self, controller: BayesianOptimizerController) -> BayesianOptimizerOutpu
662672 while controller .iterations < controller .max_iterations :
663673 try :
664674 LOGGER .info (f"Optimization iteration: { controller .iterations } " )
665- self .optimizer .maximize (** controller .optimizer_params ())
675+ self .optimizer .maximize (** controller .optimizer_params (), ** opt_kwargs )
666676 except StopEarly :
667677 # Start a new iteration
668678 continue
0 commit comments