# Copyright 2020 Huawei Technologies Co., Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # ============================================================================ """Enums.""" import enum class BaseEnum(enum.Enum): """Base enum.""" @classmethod def list_members(cls): """List all members.""" return [member.value for member in cls] class ReasonCode(BaseEnum): """Reason code for calculating importance.""" NOT_ALL_NUMBERS = 1 SAMPLES_NOT_ENOUGH = 2 CORRELATION_NAN = 3 class AcquisitionFunctionEnum(BaseEnum): """Enum for acquisition function method.""" # Upper confidence bound UCB = 'ucb' # Probability of improvement PI = 'pi' # Expected improvement EI = 'ei' class TuneMethod(BaseEnum): """Enum for tuning method.""" # Gaussian process regressor GP = 'gp' class GPSupportArgs(BaseEnum): METHOD = 'method' class HyperParamKey(BaseEnum): """Config keys for hyper parameters.""" BOUND = 'bounds' CHOICE = 'choice' DECIMAL = 'decimal' TYPE = 'type' SOURCE = 'source' class HyperParamType(BaseEnum): """Config keys for hyper parameters.""" INT = 'int' FLOAT = 'float' class TargetKey(BaseEnum): """Config keys for target.""" GROUP = 'group' NAME = 'name' GOAL = 'goal' class TargetGoal(BaseEnum): """Goal for target.""" MAXIMUM = 'maximize' MINIMUM = 'minimize' class HyperParamSource(BaseEnum): SYSTEM_DEFINED = 'system_defined' USER_DEFINED = 'user_defined' class TargetGroup(BaseEnum): SYSTEM_DEFINED = 'system_defined' METRIC = 'metric' class TunableSystemDefinedParams(BaseEnum): """Tunable metadata keys of lineage collection.""" BATCH_SIZE = 'batch_size' EPOCH = 'epoch' LEARNING_RATE = 'learning_rate' class SystemDefinedTargets(BaseEnum): """System defined targets""" LOSS = 'loss'