Skip to content

criterion_builder

optimus_dl.recipe.train.builders.criterion_builder

Criterion builder mixin for building loss criteria.

CriterionBuilder

Builder class responsible for creating the loss criterion instance.

Uses the criterion registry to instantiate the specified loss function (e.g., CrossEntropy) based on the training configuration.

Parameters:

Name Type Description Default
cfg CriterionBuilderConfig

Builder configuration.

required
criterion_config CriterionConfig

Configuration for the criterion itself.

required
Source code in optimus_dl/recipe/train/builders/criterion_builder.py
class CriterionBuilder:
    """Builder class responsible for creating the loss criterion instance.

    Uses the `criterion` registry to instantiate the specified loss function
    (e.g., CrossEntropy) based on the training configuration.

    Args:
        cfg: Builder configuration.
        criterion_config: Configuration for the criterion itself.
    """

    def __init__(
        self, cfg: CriterionBuilderConfig, criterion_config: CriterionConfig, **kwargs
    ):
        self.criterion_config = criterion_config

    def build_criterion(self, **kwargs) -> BaseCriterion:
        """Instantiate and return the configured loss criterion."""
        criterion = build("criterion", self.criterion_config, **kwargs)
        assert isinstance(criterion, BaseCriterion)
        logger.info(f"Criterion \n{criterion}")
        return criterion

build_criterion(**kwargs)

Instantiate and return the configured loss criterion.

Source code in optimus_dl/recipe/train/builders/criterion_builder.py
def build_criterion(self, **kwargs) -> BaseCriterion:
    """Instantiate and return the configured loss criterion."""
    criterion = build("criterion", self.criterion_config, **kwargs)
    assert isinstance(criterion, BaseCriterion)
    logger.info(f"Criterion \n{criterion}")
    return criterion

CriterionBuilderConfig dataclass

Bases: RegistryConfig

Configuration for CriterionBuilder (usually just a registry name).

Source code in optimus_dl/recipe/train/builders/criterion_builder.py
@dataclass
class CriterionBuilderConfig(RegistryConfig):
    """Configuration for CriterionBuilder (usually just a registry name)."""

    pass