Reference for ultralytics/models/yolo/yoloe/train_seg.py#
This page is sourced from https://github.com/ultralytics/ultralytics/blob/main/ultralytics/models/yolo/yoloe/train_seg.py. Have an improvement or example to add? Open a Pull Request — thank you! 🙏
Class ultralytics.models.yolo.yoloe.train_seg.YOLOESegTrainer#
YOLOESegTrainer()Bases: YOLOETrainer, SegmentationTrainer
Trainer class for YOLOE segmentation models.
This class combines YOLOETrainer and SegmentationTrainer to provide training functionality specifically for YOLOE segmentation models, enabling both object detection and instance segmentation capabilities.
Attributes
| Name | Type | Description |
|---|---|---|
cfg | dict | Configuration dictionary with training parameters. |
overrides | dict | Dictionary with parameter overrides. |
_callbacks | dict | Dictionary of callback functions for training events. |
Methods
| Name | Description |
|---|---|
get_model | Return YOLOESegModel initialized with specified config and weights. |
get_validator | Create and return a validator for YOLOE segmentation model evaluation. |
ultralytics/models/yolo/yoloe/train_seg.py
class YOLOESegTrainer(YOLOETrainer, SegmentationTrainer):
"""Trainer class for YOLOE segmentation models.
This class combines YOLOETrainer and SegmentationTrainer to provide training functionality specifically for YOLOE
segmentation models, enabling both object detection and instance segmentation capabilities.
Attributes:
cfg (dict): Configuration dictionary with training parameters.
overrides (dict): Dictionary with parameter overrides.
_callbacks (dict): Dictionary of callback functions for training events.
"""Method ultralytics.models.yolo.yoloe.train_seg.YOLOESegTrainer.get_model#
def get_model(self, cfg=None, weights=None, verbose=True)Return YOLOESegModel initialized with specified config and weights.
Args
| Name | Type | Description | Default |
|---|---|---|---|
cfg | dict | str, optional | Model configuration dictionary or YAML file path. | None |
weights | str, optional | Path to pretrained weights file. | None |
verbose | bool | Whether to display model information. | True |
Returns
| Type | Description |
|---|---|
YOLOESegModel | Initialized YOLOE segmentation model. |
ultralytics/models/yolo/yoloe/train_seg.py
def get_model(self, cfg=None, weights=None, verbose=True):
"""Return YOLOESegModel initialized with specified config and weights.
Args:
cfg (dict | str, optional): Model configuration dictionary or YAML file path.
weights (str, optional): Path to pretrained weights file.
verbose (bool): Whether to display model information.
Returns:
(YOLOESegModel): Initialized YOLOE segmentation model.
"""
# NOTE: This `nc` here is the max number of different text samples in one image, rather than the actual `nc`.
# NOTE: Following the official config, nc hard-coded to 80 for now.
model = YOLOESegModel(
cfg["yaml_file"] if isinstance(cfg, dict) else cfg,
ch=self.data["channels"],
nc=min(self.data["nc"], 80),
verbose=verbose and RANK == -1,
)
if weights:
model.load(weights)
return modelMethod ultralytics.models.yolo.yoloe.train_seg.YOLOESegTrainer.get_validator#
def get_validator(self)Create and return a validator for YOLOE segmentation model evaluation.
Returns
| Type | Description |
|---|---|
YOLOESegValidator | Validator for YOLOE segmentation models. |
ultralytics/models/yolo/yoloe/train_seg.py
def get_validator(self):
"""Create and return a validator for YOLOE segmentation model evaluation.
Returns:
(YOLOESegValidator): Validator for YOLOE segmentation models.
"""
return YOLOESegValidator(
self.test_loader, save_dir=self.save_dir, args=copy(self.args), _callbacks=self.callbacks
)Class ultralytics.models.yolo.yoloe.train_seg.YOLOEPESegTrainer#
YOLOEPESegTrainer()Bases: SegmentationTrainer
Fine-tune YOLOESeg model in linear probing way.
This trainer specializes in fine-tuning YOLOESeg models using a linear probing approach, which involves freezing most of the model and only training specific layers for efficient adaptation to new tasks.
Attributes
| Name | Type | Description |
|---|---|---|
data | dict | Dataset configuration containing channels, class names, and number of classes. |
Methods
| Name | Description |
|---|---|
get_model | Return YOLOESegModel initialized with specified config and weights for linear probing. |
ultralytics/models/yolo/yoloe/train_seg.py
class YOLOEPESegTrainer(SegmentationTrainer):
"""Fine-tune YOLOESeg model in linear probing way.
This trainer specializes in fine-tuning YOLOESeg models using a linear probing approach, which involves freezing
most of the model and only training specific layers for efficient adaptation to new tasks.
Attributes:
data (dict): Dataset configuration containing channels, class names, and number of classes.
"""Method ultralytics.models.yolo.yoloe.train_seg.YOLOEPESegTrainer.get_model#
def get_model(self, cfg=None, weights=None, verbose=True)Return YOLOESegModel initialized with specified config and weights for linear probing.
Args
| Name | Type | Description | Default |
|---|---|---|---|
cfg | dict | str, optional | Model configuration dictionary or YAML file path. | None |
weights | str, optional | Path to pretrained weights file. | None |
verbose | bool | Whether to display model information. | True |
Returns
| Type | Description |
|---|---|
YOLOESegModel | Initialized YOLOE segmentation model configured for linear probing. |
ultralytics/models/yolo/yoloe/train_seg.py
def get_model(self, cfg=None, weights=None, verbose=True):
"""Return YOLOESegModel initialized with specified config and weights for linear probing.
Args:
cfg (dict | str, optional): Model configuration dictionary or YAML file path.
weights (str, optional): Path to pretrained weights file.
verbose (bool): Whether to display model information.
Returns:
(YOLOESegModel): Initialized YOLOE segmentation model configured for linear probing.
"""
model = YOLOESegModel(
cfg["yaml_file"] if isinstance(cfg, dict) else cfg,
ch=self.data["channels"],
nc=self.data["nc"],
verbose=verbose and RANK == -1,
)
del model.model[-1].savpe
assert weights is not None, "Pretrained weights must be provided for linear probing."
if weights:
model.load(weights)
model.eval()
names = list(self.data["names"].values())
# NOTE: `get_text_pe` related to text model and YOLOEDetect.reprta,
# it'd get correct results as long as loading proper pretrained weights.
tpe = model.get_text_pe(names)
model.set_classes(names, tpe)
model.model[-1].fuse(model.pe)
model.model[-1].cv3[0][2] = deepcopy(model.model[-1].cv3[0][2]).requires_grad_(True)
model.model[-1].cv3[1][2] = deepcopy(model.model[-1].cv3[1][2]).requires_grad_(True)
model.model[-1].cv3[2][2] = deepcopy(model.model[-1].cv3[2][2]).requires_grad_(True)
if getattr(model.model[-1], "one2one_cv3", None) is not None:
model.model[-1].one2one_cv3[0][2] = deepcopy(model.model[-1].one2one_cv3[0][2]).requires_grad_(True)
model.model[-1].one2one_cv3[1][2] = deepcopy(model.model[-1].one2one_cv3[1][2]).requires_grad_(True)
model.model[-1].one2one_cv3[2][2] = deepcopy(model.model[-1].one2one_cv3[2][2]).requires_grad_(True)
model.train()
return modelClass ultralytics.models.yolo.yoloe.train_seg.YOLOESegTrainerFromScratch#
YOLOESegTrainerFromScratch()Bases: YOLOETrainerFromScratch, YOLOESegTrainer
Trainer for YOLOE segmentation models trained from scratch without pretrained weights.
ultralytics/models/yolo/yoloe/train_seg.py
class YOLOESegTrainerFromScratch(YOLOETrainerFromScratch, YOLOESegTrainer):
"""Trainer for YOLOE segmentation models trained from scratch without pretrained weights."""Class ultralytics.models.yolo.yoloe.train_seg.YOLOESegVPTrainer#
YOLOESegVPTrainer()Bases: YOLOEVPTrainer, YOLOESegTrainerFromScratch
Trainer for YOLOE segmentation models with Vision Prompt (VP) capabilities.
ultralytics/models/yolo/yoloe/train_seg.py
class YOLOESegVPTrainer(YOLOEVPTrainer, YOLOESegTrainerFromScratch):
"""Trainer for YOLOE segmentation models with Vision Prompt (VP) capabilities."""