def connect_to_existing_remote_optimizer(self, optimizer_info: OptimizerInfo) -> BayesianOptimizerProxy: """Connects to an existing optimizer. Parameters ---------- optimizer_info : OptimizerInfo Returns ------- BayesianOptimizerProxy """ return BayesianOptimizerProxy( grpc_channel=self._grpc_channel, optimization_problem=OptimizerServiceDecoder.decode_optimization_problem(optimizer_info.OptimizationProblem), optimizer_config=Point.from_json(optimizer_info.OptimizerConfigJsonString), id=optimizer_info.OptimizerHandle.Id, logger=self.logger )
def create_remote_optimizer( self, optimization_problem: OptimizationProblem, optimizer_config: Point = None) -> BayesianOptimizerProxy: """Creates a remote optimizer over a given problem with a given config. Parameters ---------- optimization_problem : OptimizationProblem Optimization problem for the new remote optimizer. optimizer_config : Point Configuration for the new remote optimizer. Returns ------- BayesianOptimizerProxy """ assert self._optimizer_service_stub is not None if optimizer_config is None: optimizer_config = bayesian_optimizer_config_store.default create_optimizer_request = CreateOptimizerRequest( OptimizationProblem=optimization_problem.to_protobuf(), OptimizerConfigName='', # TODO: add this functionality OptimizerConfig=optimizer_config.to_json()) optimizer_handle = self._optimizer_service_stub.CreateOptimizer( create_optimizer_request) return BayesianOptimizerProxy( grpc_channel=self._grpc_channel, optimization_problem=optimization_problem, optimizer_config=optimizer_config, id=optimizer_handle.Id, logger=self.logger)