Source code for gunz_ml.optimizers

import typing as t
from functools import partial
from ..orchestrator.objective_f import BaseObjectiveFConfigurator

[docs] def gen_partial_optimizer( obj_configurator:BaseObjectiveFConfigurator, optim_name:str, optim_cls_dict:t.Dict, key:str, kwargs=None, ): if kwargs is None: kwargs = {} try: optim_cls = optim_cls_dict[optim_name] except: raise ValueError(f"Invalid optimizer name: {optim_name}") obj_configurator.suggest_dict_params(key, target_dict=kwargs) optim_cls = partial( optim_cls, **kwargs ) return optim_cls
[docs] def gen_partial_scheduler( obj_configurator:BaseObjectiveFConfigurator, sched_name:str, sched_cls_dict:t.Dict, key:str, kwargs=None, ): if kwargs is None: kwargs = {} if sched_name is None or sched_name in ["", "none"]: return None else: try: sched_cls = sched_cls_dict[sched_name] except: raise ValueError(f"Invalid scheduler name: {sched_name}") obj_configurator.suggest_dict_params(key, target_dict=kwargs) sched_cls = partial( sched_cls, **kwargs ) return sched_cls