Ultralytics YOLO27:
Get Started

Reference for ultralytics/models/nas/val.py#

Improvements

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


Summary

Class ultralytics.models.nas.val.NASValidator#

NASValidator()

Bases: DetectionValidator

Ultralytics YOLO NAS Validator for object detection.

Extends DetectionValidator from the Ultralytics models package and is designed to post-process the raw predictions generated by YOLO NAS models. It performs non-maximum suppression to remove overlapping and low-confidence boxes, ultimately producing the final detections.

Attributes

NameTypeDescription
argsSimpleNamespaceNamespace containing various configurations for post-processing, such as confidence and IoU thresholds.

Methods

NameDescription
postprocessApply Non-maximum suppression to prediction outputs.

Examples

>>> from ultralytics import NAS
>>> model = NAS("yolo_nas_s")
>>> metrics = model.val(data="coco8.yaml")  # runs NASValidator internally
Notes

This class is generally not instantiated directly but is used internally within the NAS class.

GitHubultralytics/models/nas/val.py
class NASValidator(DetectionValidator):
    """Ultralytics YOLO NAS Validator for object detection.

    Extends DetectionValidator from the Ultralytics models package and is designed to post-process the raw predictions
    generated by YOLO NAS models. It performs non-maximum suppression to remove overlapping and low-confidence boxes,
    ultimately producing the final detections.

    Attributes:
        args (SimpleNamespace): Namespace containing various configurations for post-processing, such as confidence and
            IoU thresholds.

    Examples:
        >>> from ultralytics import NAS
        >>> model = NAS("yolo_nas_s")
        >>> metrics = model.val(data="coco8.yaml")  # runs NASValidator internally

    Notes:
        This class is generally not instantiated directly but is used internally within the NAS class.
    """

Method ultralytics.models.nas.val.NASValidator.postprocess#

def postprocess(self, preds_in)

Apply Non-maximum suppression to prediction outputs.

GitHubultralytics/models/nas/val.py
def postprocess(self, preds_in):
    """Apply Non-maximum suppression to prediction outputs."""
    boxes = ops.xyxy2xywh(preds_in[0][0])  # Convert bounding box format from xyxy to xywh
    preds = torch.cat((boxes, preds_in[0][1]), -1).permute(0, 2, 1)  # Concatenate boxes with scores and permute
    return super().postprocess(preds)