Source code for autogllight.hpo

import importlib
import os
from .base import BaseHPOptimizer, RangeHP, LogRangeHP, ChoiceHP
from .auto_module import AutoModule

HPO_DICT = {}


def register_hpo(name):
    def register_hpo_cls(cls):
        if name in HPO_DICT:
            raise ValueError("Cannot register duplicate HP Optimizer ({})".format(name))
        if not issubclass(cls, BaseHPOptimizer):
            raise ValueError(
                "Model ({}: {}) must extend HPOptimizer".format(name, cls.__name__)
            )
        HPO_DICT[name] = cls
        return cls

    return register_hpo_cls


from .anneal_advisorhpo import AnnealAdvisorHPO
from .autone import AutoNE
from .bayes_advisor import BayesAdvisor
from .cmaes_advisorchoco import CmaesAdvisorChoco
from .grid_advisor import GridAdvisor
from .mocmaes_advisorchoco import MocmaesAdvisorChoco
from .quasi_advisorchoco import QuasiAdvisorChoco
from .rand_advisor import RandAdvisor
from .tpe_advisorhpo import TpeAdvisorHPO


[docs]def build_hpo_from_name(name: str, *args, **kwargs) -> BaseHPOptimizer: """ Parameters ---------- name: ``str`` the name of hpo module. Returns ------- BaseHPOptimizer: the HPO built using default parameters Raises ------ AssertionError If an invalid name is passed in """ assert name in HPO_DICT, "HPO module do not have name " + name return HPO_DICT[name](*args, **kwargs)
__all__ = [ "AutoModule", "BaseHPOptimizer", "AnnealAdvisorHPO", "AutoNE", "BayesAdvisor", "CmaesAdvisorChoco", "GridAdvisor", "MocmaesAdvisorChoco", "QuasiAdvisorChoco", "RandAdvisor", "TpeAdvisorHPO", "build_hpo_from_name", ]