Source code for smac.tae

from typing import Any, Dict

from enum import Enum

__author__ = "Marius Lindauer"
__copyright__ = "Copyright 2015, ML4AAD"
__license__ = "3-clause BSD"
__maintainer__ = "Marius Lindauer"
__email__ = "lindauer@cs.uni-freiburg.de"
__version__ = "0.0.1"


[docs]class StatusType(Enum): """Class to define numbers for status types.""" SUCCESS = 1 TIMEOUT = 2 CRASHED = 3 ABORT = 4 MEMOUT = 5 CAPPED = 6 # Only relevant for SH/HB. Run might have a results, but should not be considered further. # By default, these runs will always be considered for building the model. Potential use cases: # 1) The run has converged and does not benefit from a higher budget # 2) The run has exhausted given resources and will not benefit from higher budgets DONOTADVANCE = 7 # Gracefully exit SMAC - wait for currently executed runs to finish STOP = 8 # In case a job was submited, but it has not finished RUNNING = 9
[docs] @staticmethod def enum_hook(obj: Dict) -> Any: """Hook function passed to json-deserializer as "object_hook". EnumEncoder in runhistory/runhistory. """ if "__enum__" in obj: # object is marked as enum name, member = obj["__enum__"].split(".") if name == "StatusType": return getattr(globals()[name], member) return obj
[docs]class TAEAbortException(Exception): """Exception indicating that the target algorithm suggests an ABORT of SMAC, usually because it assumes that all further runs will surely fail. """ pass
[docs]class FirstRunCrashedException(TAEAbortException): """Exception indicating that the first run crashed (depending on options this could trigger an ABORT of SMAC). """ pass