| Argument        | Type            | Default | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| --------------- | --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `data`          | `str`           | `None`  | Specifies the path to the dataset configuration file (e.g., `coco8.yaml`). This file should include the path to the [validation data](https://www.ultralytics.com/glossary/validation-data).                                                                                                                                                                                                                                                                 |
| `imgsz`         | `int`           | `640`   | Defines the size of input images. All images are resized to this dimension before processing. Larger sizes may improve accuracy for small objects but increase computation time.                                                                                                                                                                                                                                                                             |
| `batch`         | `int`           | `16`    | Sets the number of images per batch. Higher values utilize GPU memory more efficiently but require more VRAM. Adjust based on available hardware resources.                                                                                                                                                                                                                                                                                                  |
| `save_json`     | `bool`          | `False` | If `True`, saves the results to a JSON file for further analysis, integration with other tools, or submission to evaluation servers like COCO.                                                                                                                                                                                                                                                                                                               |
| `conf`          | `float`         | `0.001` | Sets the minimum confidence threshold for detections. Lower values increase recall but may introduce more false positives. Used during [validation](https://docs.ultralytics.com/modes/val) to compute precision-recall curves. Defaults to `0.01` for OBB validation to reduce memory usage.                                                                                                                                                                |
| `iou`           | `float`         | `0.7`   | Sets the [Intersection Over Union](https://www.ultralytics.com/glossary/intersection-over-union-iou) threshold for [Non-Maximum Suppression](https://www.ultralytics.com/glossary/non-maximum-suppression-nms). Controls duplicate detection elimination.                                                                                                                                                                                                    |
| `max_det`       | `int`           | `300`   | Limits the maximum number of detections per image. Useful in dense scenes to prevent excessive detections and manage computational resources.                                                                                                                                                                                                                                                                                                                |
| `quantize`      | `int` or `str`  | `None`  | Validation precision: `16`/`"fp16"` enables FP16 validation on supported GPUs; `32`/`"fp32"`/unset is FP32. INT8/PTQ quantization is configured during [export](../modes/export.md#quantization-options), then used by validating the exported model. Replaces the deprecated `half` flag.                                                                                                                                                                   |
| `device`        | `str`           | `None`  | Specifies the device for validation (`cpu`, `cuda:0`, `npu`, `npu:0`, etc.). When `None`, automatically selects the best available device. Multiple CUDA devices can be specified with comma separation.                                                                                                                                                                                                                                                     |
| `dnn`           | `bool`          | `False` | If `True`, uses the [OpenCV](https://www.ultralytics.com/glossary/opencv) DNN module for ONNX model inference, offering an alternative to [PyTorch](https://www.ultralytics.com/glossary/pytorch) inference methods.                                                                                                                                                                                                                                         |
| `plots`         | `bool`          | `True`  | When set to `True`, generates and saves plots of predictions versus ground truth, confusion matrices, and PR curves for visual evaluation of model performance.                                                                                                                                                                                                                                                                                              |
| `classes`       | `list[int]`     | `None`  | Specifies a list of class IDs to evaluate. Useful for filtering out and focusing only on certain classes during evaluation.                                                                                                                                                                                                                                                                                                                                  |
| `rect`          | `bool`          | `True`  | If `True`, uses rectangular inference for batching, reducing padding and potentially increasing speed and efficiency by processing images in their original aspect ratio.                                                                                                                                                                                                                                                                                    |
| `split`         | `str`           | `'val'` | Determines the dataset split to use for validation (`val`, `test`, or `train`). Allows flexibility in choosing the data segment for performance evaluation.                                                                                                                                                                                                                                                                                                  |
| `project`       | `str`           | `None`  | Name of the project directory where validation outputs are saved. Helps organize results from different experiments or models.                                                                                                                                                                                                                                                                                                                               |
| `name`          | `str`           | `None`  | Name of the validation run. Used for creating a subdirectory within the project folder, where validation logs and outputs are stored.                                                                                                                                                                                                                                                                                                                        |
| `verbose`       | `bool`          | `True`  | If `True`, displays detailed information during the validation process, including per-class metrics, batch progress, and additional debugging information.                                                                                                                                                                                                                                                                                                   |
| `save_txt`      | `bool`          | `False` | If `True`, saves detection results in text files, with one file per image, useful for further analysis, custom post-processing, or integration with other systems.                                                                                                                                                                                                                                                                                           |
| `save_conf`     | `bool`          | `False` | If `True`, includes confidence values in the saved text files when `save_txt` is enabled, providing more detailed output for analysis and filtering.                                                                                                                                                                                                                                                                                                         |
| `workers`       | `int`           | `8`     | Number of worker threads for data loading. Higher values can speed up data preprocessing but may increase CPU usage. Setting to 0 uses main thread, which can be more stable in some environments.                                                                                                                                                                                                                                                           |
| `augment`       | `bool`          | `False` | Enables test-time augmentation (TTA) during validation, potentially improving detection accuracy at the cost of inference speed by running inference on transformed versions of the input.                                                                                                                                                                                                                                                                   |
| `agnostic_nms`  | `bool`          | `False` | Enables class-agnostic [Non-Maximum Suppression](https://www.ultralytics.com/glossary/non-maximum-suppression-nms), which merges overlapping boxes regardless of their predicted class. Useful for instance-focused applications. For end-to-end models (YOLO26, YOLOv10), this only prevents the same detection from appearing with multiple class labels (IoU=1.0 duplicates) and does not perform IoU-threshold-based suppression between distinct boxes. |
| `single_cls`    | `bool`          | `False` | Treats all classes as a single class during validation. Useful for evaluating model performance on binary detection tasks or when class distinctions aren't important.                                                                                                                                                                                                                                                                                       |
| `visualize`     | `bool`          | `False` | Visualizes the ground truths, true positives, false positives, and false negatives for each image. Useful for debugging and model interpretation.                                                                                                                                                                                                                                                                                                            |
| `show_labels`   | `bool`          | `True`  | Displays class labels in validation visualizations when `visualize=True`. Set to `False` for a cleaner view of matches and errors.                                                                                                                                                                                                                                                                                                                           |
| `show_conf`     | `bool`          | `True`  | Displays confidence scores in validation visualizations when `visualize=True`. Set to `False` for a cleaner view of matches and errors.                                                                                                                                                                                                                                                                                                                      |
| `compile`       | `bool` or `str` | `False` | Enables PyTorch 2.x `torch.compile` graph compilation with `backend='inductor'`. Accepts `True` → `"default"`, `False` → disables, or a string mode such as `"default"`, `"reduce-overhead"`, `"max-autotune-no-cudagraphs"`. Falls back to eager with a warning if unsupported.                                                                                                                                                                             |
| `channels_last` | `bool`          | `False` | Uses the channels_last (NHWC) memory format for convolutions during validation, speeding up CUDA Tensor Core GPUs with no change in results. Applies to native PyTorch models only; ignored for CPU, MPS, and exported formats such as TensorRT and ONNX.                                                                                                                                                                                                    |
| `end2end`       | `bool`          | `None`  | Overrides the end-to-end mode in YOLO models that support NMS-free inference (YOLO26, YOLOv10). Setting it to `False` lets you run validation using the traditional NMS pipeline, additionally allowing you to make use of the `iou` argument.                                                                                                                                                                                                               |
