Ultralytics YOLO27:
Get Started

Reference for ultralytics/models/yolo/segment/train.py#

Improvements

This page is sourced from https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/yolo/segment/train.py. Have an improvement or example to add? Open a Pull Request — thank you! 🙏


Summary

Class ultralytics.models.yolo.segment.train.SegmentationTrainer#

SegmentationTrainer(cfg=DEFAULT_CFG, overrides: dict | None = None, _callbacks: dict | None = None)

Bases: yolo.detect.DetectionTrainer

A class extending the DetectionTrainer class for training based on a segmentation model.

This trainer specializes in handling segmentation tasks, extending the detection trainer with segmentation-specific functionality including model initialization, validation, and visualization.

Args

NameTypeDescriptionDefault
cfgdictConfiguration dictionary with default training settings.DEFAULT_CFG
overridesdict, optionalDictionary of parameter overrides for the default configuration.None
_callbacksdict, optionalDictionary of callback functions to be executed during training.None

Attributes

NameTypeDescription
loss_namestuple[str]Names of the loss components, derived from the loss dict returned by the criterion.

Methods

NameDescription
get_modelInitialize and return a SegmentationModel with specified configuration and weights.
get_validatorReturn an instance of SegmentationValidator for validation of YOLO model.

Examples

>>> from ultralytics.models.yolo.segment import SegmentationTrainer
>>> args = dict(model="yolo26n-seg.pt", data="coco8-seg.yaml", epochs=3)
>>> trainer = SegmentationTrainer(overrides=args)
>>> trainer.train()
GitHubultralytics/models/yolo/segment/train.py
class SegmentationTrainer(yolo.detect.DetectionTrainer):
    """A class extending the DetectionTrainer class for training based on a segmentation model.

    This trainer specializes in handling segmentation tasks, extending the detection trainer with segmentation-specific
    functionality including model initialization, validation, and visualization.

    Attributes:
        loss_names (tuple[str]): Names of the loss components, derived from the loss dict returned by the criterion.

    Examples:
        >>> from ultralytics.models.yolo.segment import SegmentationTrainer
        >>> args = dict(model="yolo26n-seg.pt", data="coco8-seg.yaml", epochs=3)
        >>> trainer = SegmentationTrainer(overrides=args)
        >>> trainer.train()
    """

    def __init__(self, cfg=DEFAULT_CFG, overrides: dict | None = None, _callbacks: dict | None = None):
        """Initialize a SegmentationTrainer object.

        Args:
            cfg (dict): Configuration dictionary with default training settings.
            overrides (dict, optional): Dictionary of parameter overrides for the default configuration.
            _callbacks (dict, optional): Dictionary of callback functions to be executed during training.
        """
        if overrides is None:
            overrides = {}
        overrides["task"] = "segment"
        super().__init__(cfg, overrides, _callbacks)

Method ultralytics.models.yolo.segment.train.SegmentationTrainer.get_model#

def get_model(self, cfg: dict | str | None = None, weights: torch.nn.Module | None = None, verbose: bool = True)

Initialize and return a SegmentationModel with specified configuration and weights.

Args

NameTypeDescriptionDefault
cfgdict | str, optionalModel configuration. Can be a dictionary, a path to a YAML file, or None.None
weightstorch.nn.Module, optionalPretrained model whose weights are loaded into the new model.None
verboseboolWhether to display model information during initialization.True

Returns

TypeDescription
SegmentationModelInitialized segmentation model with loaded weights if specified.

Examples

>>> trainer = SegmentationTrainer()
>>> model = trainer.get_model(cfg="yolo26n-seg.yaml", verbose=False)
GitHubultralytics/models/yolo/segment/train.py
def get_model(self, cfg: dict | str | None = None, weights: torch.nn.Module | None = None, verbose: bool = True):
    """Initialize and return a SegmentationModel with specified configuration and weights.

    Args:
        cfg (dict | str, optional): Model configuration. Can be a dictionary, a path to a YAML file, or None.
        weights (torch.nn.Module, optional): Pretrained model whose weights are loaded into the new model.
        verbose (bool): Whether to display model information during initialization.

    Returns:
        (SegmentationModel): Initialized segmentation model with loaded weights if specified.

    Examples:
        >>> trainer = SegmentationTrainer()
        >>> model = trainer.get_model(cfg="yolo26n-seg.yaml", verbose=False)
    """
    model = self.set_model_names_for_load(
        SegmentationModel(cfg, nc=self.data["nc"], ch=self.data["channels"], verbose=verbose and RANK == -1)
    )
    if weights:
        model.load(weights)

    return model

Method ultralytics.models.yolo.segment.train.SegmentationTrainer.get_validator#

def get_validator(self)

Return an instance of SegmentationValidator for validation of YOLO model.

GitHubultralytics/models/yolo/segment/train.py
def get_validator(self):
    """Return an instance of SegmentationValidator for validation of YOLO model."""
    return yolo.segment.SegmentationValidator(
        self.test_loader, save_dir=self.save_dir, args=copy(self.args), _callbacks=self.callbacks
    )