Source code for syne_tune.optimizer.schedulers.single_objective_scheduler

from typing import Optional, Dict, Any, Union
import logging

from syne_tune.optimizer.schedulers.searchers.single_objective_searcher import (
    SingleObjectiveBaseSearcher,
)
from syne_tune.optimizer.schedulers.single_fidelity_scheduler import (
    SingleFidelityScheduler,
)

logger = logging.getLogger(__name__)


[docs] class SingleObjectiveScheduler(SingleFidelityScheduler): """ Base class to implement scheduler that optimize a single objective. :param config_space: Configuration space for evaluation function :param searcher: Searcher for ``get_config`` decisions. String values are passed to :func:`~syne_tune.optimizer.schedulers.searchers.searcher_factory` along with ``search_options`` and extra information. Supported values: :const:`~syne_tune.optimizer.schedulers.searchers.searcher_factory.SUPPORTED_SEARCHERS_FIFO`. Defaults to "random" (i.e., random search) :param metric: Name of metric to optimize, key in results obtained via ``on_trial_result``. :param do_minimize: True if we minimize the objective function :param random_seed: Seed used to initialize the random number generators. """ def __init__( self, config_space: Dict[str, Any], metric: str, do_minimize: Optional[bool] = True, searcher: Optional[Union[str, SingleObjectiveBaseSearcher]] = "random_search", random_seed: int = None, searcher_kwargs: dict = None, ): super().__init__( random_seed=random_seed, config_space=config_space, do_minimize=do_minimize, searcher=searcher, metrics=[metric], searcher_kwargs=searcher_kwargs, )