Skip to content

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! 🙏


class ultralytics.models.yolo.segment.train.SegmentationTrainer

SegmentationTrainer(self, cfg = DEFAULT_CFG, overrides: dict | None = None, _callbacks = 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
_callbackslist, optionalList of callback functions to be executed during training.None

Attributes

NameTypeDescription
loss_namestuple[str]Names of the loss components used during training.

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="yolo11n-seg.pt", data="coco8-seg.yaml", epochs=3)
>>> trainer = SegmentationTrainer(overrides=args)
>>> trainer.train()
Source code in ultralytics/models/yolo/segment/train.pyView on GitHub
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 used during training.

    Examples:
        >>> from ultralytics.models.yolo.segment import SegmentationTrainer
        >>> args = dict(model="yolo11n-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=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 (list, optional): List 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: str | Path | 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
weightsstr | Path, optionalPath to pretrained weights file.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="yolo11n-seg.yaml")
>>> model = trainer.get_model(weights="yolo11n-seg.pt", verbose=False)
Source code in ultralytics/models/yolo/segment/train.pyView on GitHub
def get_model(self, cfg: dict | str | None = None, weights: str | Path | 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 (str | Path, optional): Path to pretrained weights file.
        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="yolo11n-seg.yaml")
        >>> model = trainer.get_model(weights="yolo11n-seg.pt", verbose=False)
    """
    model = 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.

Source code in ultralytics/models/yolo/segment/train.pyView on GitHub
def get_validator(self):
    """Return an instance of SegmentationValidator for validation of YOLO model."""
    self.loss_names = "box_loss", "seg_loss", "cls_loss", "dfl_loss"
    return yolo.segment.SegmentationValidator(
        self.test_loader, save_dir=self.save_dir, args=copy(self.args), _callbacks=self.callbacks
    )





📅 Created 2 years ago ✏️ Updated 2 days ago
glenn-jocherjk4eBurhan-Q