Source code for otx.api.configuration.enums.model_lifecycle

"""This module contains the ModelLifecycle Enum."""


# Copyright (C) 2021-2022 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#

from enum import Enum, auto


[docs] class ModelLifecycle(Enum): """This Enum represents the different stages in the ModelLifecycle. It is used by configuration parameters to indicate in which stage of the model lifecycle the parameter takes effect. Selecting a stage early in the lifecycle implies that all downstream stages are affected as well (e.g. if this is set to `ModelLifecycle.TRAINING`, it is assumed that inference and testing are also impacted). Currently the following stages are possible: ARCHITECTURE - Select this stage if the parameter modifies the model architecture, such that the most recently trained weights cannot directly by used for the next training round due to a model topology mismatch. For example, a parameter `model_depth` that controls the number of downsampling steps in a UNet model should have this stage set. TRAINING - Select this stage if the parameter is likely to change the outcome of the training process. For example, the parameter `learning_rate` should have this stage set. INFERENCE - Select this stage if the parameter changes the result of inference. For example, a parameter `probability_threshold` that controls the threshold for binary classification should have this stage set. TESTING - Select this stage if the parameter changes the outcome of the evaluation process. For example, a parameter 'test_metric` that controls which metric to use for testing does not change training or inference results, but does affect the final evaluation of the model. Therefore, it should have this stage set. NONE - Select this stage if the parameter is non-functional, for example if it only impacts training speed but should not change the training outcome. For example, a parameter `num_workers` that controls the number of threads used in a dataloader should have this stage set. """ NONE = auto() ARCHITECTURE = auto() TRAINING = auto() INFERENCE = auto() TESTING = auto() def __str__(self): """Retrieves the string representation of an instance of the Enum.""" return self.name