diff --git a/datasets/classify/fashion-mnist/index.html b/datasets/classify/fashion-mnist/index.html index 5ea5079ce3..ba4728e210 100644 --- a/datasets/classify/fashion-mnist/index.html +++ b/datasets/classify/fashion-mnist/index.html @@ -1109,7 +1109,7 @@

📅 Created 1 year ago -✏️ Updated 24 days ago +✏️ Updated 25 days ago
diff --git a/datasets/detect/brain-tumor/index.html b/datasets/detect/brain-tumor/index.html index 8b8aef42d7..c042c57dc6 100644 --- a/datasets/detect/brain-tumor/index.html +++ b/datasets/detect/brain-tumor/index.html @@ -1137,7 +1137,7 @@

Whe 📅 Created 10 months ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/datasets/detect/sku-110k/index.html b/datasets/detect/sku-110k/index.html index 239a25f680..58a2152bb8 100644 --- a/datasets/detect/sku-110k/index.html +++ b/datasets/detect/sku-110k/index.html @@ -1209,7 +1209,7 @@

How do I cite the SKU 📅 Created 1 year ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/datasets/explorer/explorer/index.html b/datasets/explorer/explorer/index.html index 88903f539b..895b467bc0 100644 --- a/datasets/explorer/explorer/index.html +++ b/datasets/explorer/explorer/index.html @@ -1031,7 +1031,7 @@

Similarity Index

📅 Created 24 days ago -✏️ Updated 9 days ago +✏️ Updated 10 days ago
diff --git a/datasets/pose/coco/index.html b/datasets/pose/coco/index.html index 948005f477..01ea1e610d 100644 --- a/datasets/pose/coco/index.html +++ b/datasets/pose/coco/index.html @@ -1229,7 +1229,7 @@

Wha 📅 Created 1 year ago -✏️ Updated 28 days ago +✏️ Updated 29 days ago

diff --git a/datasets/pose/hand-keypoints/index.html b/datasets/pose/hand-keypoints/index.html index e158592781..f8897f9c28 100644 --- a/datasets/pose/hand-keypoints/index.html +++ b/datasets/pose/hand-keypoints/index.html @@ -1207,7 +1207,7 @@

How do I use the datase 📅 Created 3 months ago -✏️ Updated 1 month ago +✏️ Updated 2 months ago

diff --git a/datasets/segment/carparts-seg/index.html b/datasets/segment/carparts-seg/index.html index f14891de3f..ce8b34ea2c 100644 --- a/datasets/segment/carparts-seg/index.html +++ b/datasets/segment/carparts-seg/index.html @@ -1150,7 +1150,7 @@

Why should I use the 📅 Created 12 months ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/datasets/segment/coco/index.html b/datasets/segment/coco/index.html index 367eefa7e6..4cf9b367a4 100644 --- a/datasets/segment/coco/index.html +++ b/datasets/segment/coco/index.html @@ -1374,7 +1374,7 @@

📅 Created 1 year ago -✏️ Updated 1 month ago +✏️ Updated 2 months ago

diff --git a/datasets/segment/package-seg/index.html b/datasets/segment/package-seg/index.html index 65d8f935a2..eb0eb0fddc 100644 --- a/datasets/segment/package-seg/index.html +++ b/datasets/segment/package-seg/index.html @@ -1116,7 +1116,7 @@

📅 Created 12 months ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/guides/deepstream-nvidia-jetson/index.html b/guides/deepstream-nvidia-jetson/index.html index 32bf2c1a13..bfa77e4c7f 100644 --- a/guides/deepstream-nvidia-jetson/index.html +++ b/guides/deepstream-nvidia-jetson/index.html @@ -1428,7 +1428,7 @@

W 📅 Created 6 months ago -✏️ Updated 14 days ago +✏️ Updated 15 days ago

diff --git a/guides/defining-project-goals/index.html b/guides/defining-project-goals/index.html index c2fa809f32..48fc85f46a 100644 --- a/guides/defining-project-goals/index.html +++ b/guides/defining-project-goals/index.html @@ -1139,7 +1139,7 @@

-📅 Created 7 months ago +📅 Created 8 months ago ✏️ Updated 3 months ago diff --git a/guides/docker-quickstart/index.html b/guides/docker-quickstart/index.html index 9fc6c9003d..bb1cefb1d5 100644 --- a/guides/docker-quickstart/index.html +++ b/guides/docker-quickstart/index.html @@ -1246,7 +1246,7 @@

Can 📅 Created 1 year ago -✏️ Updated 4 days ago +✏️ Updated 5 days ago

diff --git a/guides/heatmaps/index.html b/guides/heatmaps/index.html index d5403f00b6..4df0f00286 100644 --- a/guides/heatmaps/index.html +++ b/guides/heatmaps/index.html @@ -1070,7 +1070,7 @@

📅 Created 1 year ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/guides/index.html b/guides/index.html index 6e3925cd42..a7898c6a5b 100644 --- a/guides/index.html +++ b/guides/index.html @@ -817,7 +817,7 @@

📅 Created 1 year ago -✏️ Updated 25 days ago +✏️ Updated 26 days ago

diff --git a/guides/kfold-cross-validation/index.html b/guides/kfold-cross-validation/index.html index 5ee609abd0..37065f1910 100644 --- a/guides/kfold-cross-validation/index.html +++ b/guides/kfold-cross-validation/index.html @@ -1200,7 +1200,7 @@

📅 Created 1 year ago -✏️ Updated 0 days ago +✏️ Updated 1 day ago

diff --git a/guides/model-evaluation-insights/index.html b/guides/model-evaluation-insights/index.html index 5a5e83150e..c5f12f9c90 100644 --- a/guides/model-evaluation-insights/index.html +++ b/guides/model-evaluation-insights/index.html @@ -1212,7 +1212,7 @@

How do I acce 📅 Created 6 months ago -✏️ Updated 24 days ago +✏️ Updated 25 days ago

diff --git a/guides/nvidia-jetson/index.html b/guides/nvidia-jetson/index.html index c4295b8a34..b5a8f20e50 100644 --- a/guides/nvidia-jetson/index.html +++ b/guides/nvidia-jetson/index.html @@ -2770,7 +2770,7 @@

📅 Created 9 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/guides/object-counting/index.html b/guides/object-counting/index.html index d548c7a855..c21579bbb3 100644 --- a/guides/object-counting/index.html +++ b/guides/object-counting/index.html @@ -995,7 +995,7 @@

📅 Created 1 year ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/guides/parking-management/index.html b/guides/parking-management/index.html index 7a46f60b37..e1b8599629 100644 --- a/guides/parking-management/index.html +++ b/guides/parking-management/index.html @@ -946,7 +946,7 @@

-📅 Created 8 months ago +📅 Created 9 months ago ✏️ Updated 3 months ago diff --git a/guides/queue-management/index.html b/guides/queue-management/index.html index 4023404aeb..b023c6c00b 100644 --- a/guides/queue-management/index.html +++ b/guides/queue-management/index.html @@ -953,7 +953,7 @@

📅 Created 9 months ago -✏️ Updated 28 days ago +✏️ Updated 29 days ago

diff --git a/guides/raspberry-pi/index.html b/guides/raspberry-pi/index.html index 41d82c7e42..384f61c448 100644 --- a/guides/raspberry-pi/index.html +++ b/guides/raspberry-pi/index.html @@ -1687,7 +1687,7 @@

📅 Created 1 year ago -✏️ Updated 0 days ago +✏️ Updated 1 day ago

diff --git a/guides/sahi-tiled-inference/index.html b/guides/sahi-tiled-inference/index.html index 9cee9f94f0..6f5e2b6424 100644 --- a/guides/sahi-tiled-inference/index.html +++ b/guides/sahi-tiled-inference/index.html @@ -1254,7 +1254,7 @@

Ho 📅 Created 1 year ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/guides/steps-of-a-cv-project/index.html b/guides/steps-of-a-cv-project/index.html index 0c137e265f..cb075d00d4 100644 --- a/guides/steps-of-a-cv-project/index.html +++ b/guides/steps-of-a-cv-project/index.html @@ -1192,7 +1192,7 @@

-📅 Created 7 months ago +📅 Created 8 months ago ✏️ Updated 3 months ago diff --git a/guides/streamlit-live-inference/index.html b/guides/streamlit-live-inference/index.html index f594251061..53a19867f5 100644 --- a/guides/streamlit-live-inference/index.html +++ b/guides/streamlit-live-inference/index.html @@ -882,7 +882,7 @@

📅 Created 6 months ago -✏️ Updated 29 days ago +✏️ Updated 1 month ago

diff --git a/guides/trackzone/index.html b/guides/trackzone/index.html index e66d1272eb..cf43958cc7 100644 --- a/guides/trackzone/index.html +++ b/guides/trackzone/index.html @@ -899,7 +899,7 @@

📅 Created 1 month ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/guides/triton-inference-server/index.html b/guides/triton-inference-server/index.html index 8c1d4c70f2..3b17bca4c3 100644 --- a/guides/triton-inference-server/index.html +++ b/guides/triton-inference-server/index.html @@ -1121,7 +1121,7 @@

📅 Created 1 year ago -✏️ Updated 0 days ago +✏️ Updated 1 day ago

diff --git a/guides/workouts-monitoring/index.html b/guides/workouts-monitoring/index.html index 52096cda64..56893dc04f 100644 --- a/guides/workouts-monitoring/index.html +++ b/guides/workouts-monitoring/index.html @@ -1105,7 +1105,7 @@

H 📅 Created 1 year ago -✏️ Updated 13 days ago +✏️ Updated 14 days ago

diff --git a/help/CI/index.html b/help/CI/index.html index 3dec03baa4..e5a090e8bb 100644 --- a/help/CI/index.html +++ b/help/CI/index.html @@ -817,7 +817,7 @@

How 📅 Created 1 year ago -✏️ Updated 9 days ago +✏️ Updated 10 days ago

diff --git a/help/FAQ/index.html b/help/FAQ/index.html index 396777b337..de14511382 100644 --- a/help/FAQ/index.html +++ b/help/FAQ/index.html @@ -883,7 +883,7 @@

Where can 📅 Created 1 year ago -✏️ Updated 24 days ago +✏️ Updated 25 days ago

diff --git a/help/code-of-conduct/index.html b/help/code-of-conduct/index.html index 0a9e3e2b62..6dda4d81eb 100644 --- a/help/code-of-conduct/index.html +++ b/help/code-of-conduct/index.html @@ -787,10 +787,10 @@

-📅 Created 6 days ago +📅 Created 7 days ago -✏️ Updated 6 days ago +✏️ Updated 7 days ago
diff --git a/help/contributing/index.html b/help/contributing/index.html index e66f556982..b317b50f71 100644 --- a/help/contributing/index.html +++ b/help/contributing/index.html @@ -1024,7 +1024,7 @@

How do I report 📅 Created 1 year ago -✏️ Updated 6 days ago +✏️ Updated 7 days ago

diff --git a/help/index.html b/help/index.html index 4e46eb934c..615ce2b369 100644 --- a/help/index.html +++ b/help/index.html @@ -537,7 +537,7 @@

How is 📅 Created 1 year ago -✏️ Updated 6 days ago +✏️ Updated 7 days ago

diff --git a/help/minimum-reproducible-example/index.html b/help/minimum-reproducible-example/index.html index 03ae9e3736..8891cdfda9 100644 --- a/help/minimum-reproducible-example/index.html +++ b/help/minimum-reproducible-example/index.html @@ -756,10 +756,10 @@

-📅 Created 6 days ago +📅 Created 7 days ago -✏️ Updated 6 days ago +✏️ Updated 7 days ago
diff --git a/hub/cloud-training/index.html b/hub/cloud-training/index.html index b6f43be803..01a415bce1 100644 --- a/hub/cloud-training/index.html +++ b/hub/cloud-training/index.html @@ -699,7 +699,7 @@

Billing

📅 Created 11 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago
diff --git a/hub/index.html b/hub/index.html index b0269d48e0..81e496799f 100644 --- a/hub/index.html +++ b/hub/index.html @@ -747,7 +747,7 @@

What integrations 📅 Created 1 year ago -✏️ Updated 6 days ago +✏️ Updated 7 days ago

diff --git a/index.html b/index.html index 2e2278575d..b890426182 100644 --- a/index.html +++ b/index.html @@ -981,7 +981,7 @@

How can 📅 Created 1 year ago -✏️ Updated 9 days ago +✏️ Updated 10 days ago

diff --git a/integrations/albumentations/index.html b/integrations/albumentations/index.html index dc63ed896b..a3edffe490 100644 --- a/integrations/albumentations/index.html +++ b/integrations/albumentations/index.html @@ -1072,7 +1072,7 @@

📅 Created 2 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/integrations/ibm-watsonx/index.html b/integrations/ibm-watsonx/index.html index 9e87479798..6eb9fa3d70 100644 --- a/integrations/ibm-watsonx/index.html +++ b/integrations/ibm-watsonx/index.html @@ -1334,7 +1334,7 @@

W 📅 Created 5 months ago -✏️ Updated 0 days ago +✏️ Updated 1 day ago

diff --git a/integrations/kaggle/index.html b/integrations/kaggle/index.html index 3feda17f25..0013f099ae 100644 --- a/integrations/kaggle/index.html +++ b/integrations/kaggle/index.html @@ -953,7 +953,7 @@

How can I 📅 Created 6 months ago -✏️ Updated 24 days ago +✏️ Updated 25 days ago

diff --git a/integrations/mnn/index.html b/integrations/mnn/index.html index 38dca0f64b..76a1b7de69 100644 --- a/integrations/mnn/index.html +++ b/integrations/mnn/index.html @@ -1144,7 +1144,7 @@

How ca 📅 Created 2 months ago -✏️ Updated 8 days ago +✏️ Updated 9 days ago

diff --git a/integrations/ncnn/index.html b/integrations/ncnn/index.html index c63d595b44..0af5b89e29 100644 --- a/integrations/ncnn/index.html +++ b/integrations/ncnn/index.html @@ -1028,7 +1028,7 @@

How can I de 📅 Created 10 months ago -✏️ Updated 24 days ago +✏️ Updated 25 days ago

diff --git a/integrations/paddlepaddle/index.html b/integrations/paddlepaddle/index.html index f59cc130c2..20c8ede355 100644 --- a/integrations/paddlepaddle/index.html +++ b/integrations/paddlepaddle/index.html @@ -1049,7 +1049,7 @@

What 📅 Created 10 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/integrations/rockchip-rknn/index.html b/integrations/rockchip-rknn/index.html index f25e2de06f..4156f8a9af 100644 --- a/integrations/rockchip-rknn/index.html +++ b/integrations/rockchip-rknn/index.html @@ -1137,7 +1137,7 @@

-📅 Created 2 days ago +📅 Created 3 days ago ✏️ Updated 2 days ago diff --git a/integrations/sony-imx500/index.html b/integrations/sony-imx500/index.html index 77b353fea1..60a56501ed 100644 --- a/integrations/sony-imx500/index.html +++ b/integrations/sony-imx500/index.html @@ -1294,7 +1294,7 @@

📅 Created 2 months ago -✏️ Updated 23 days ago +✏️ Updated 24 days ago

diff --git a/integrations/tensorrt/index.html b/integrations/tensorrt/index.html index 4a3750cbdc..7839d390ca 100644 --- a/integrations/tensorrt/index.html +++ b/integrations/tensorrt/index.html @@ -2187,7 +2187,7 @@

📅 Created 12 months ago -✏️ Updated 0 days ago +✏️ Updated 1 day ago

diff --git a/integrations/tf-savedmodel/index.html b/integrations/tf-savedmodel/index.html index 756a233bde..b34c4db219 100644 --- a/integrations/tf-savedmodel/index.html +++ b/integrations/tf-savedmodel/index.html @@ -1035,7 +1035,7 @@

What are 📅 Created 10 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/integrations/vscode/index.html b/integrations/vscode/index.html index 7433739c30..9fac290146 100644 --- a/integrations/vscode/index.html +++ b/integrations/vscode/index.html @@ -1225,10 +1225,10 @@

How do I uninstal
-📅 Created 4 months ago +📅 Created 5 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago
diff --git a/models/index.html b/models/index.html index 0bd3b31d9f..6fc1426619 100644 --- a/models/index.html +++ b/models/index.html @@ -700,7 +700,7 @@

📅 Created 1 year ago -✏️ Updated 16 days ago +✏️ Updated 17 days ago

diff --git a/models/mobile-sam/index.html b/models/mobile-sam/index.html index a6b72a9d88..530948eeef 100644 --- a/models/mobile-sam/index.html +++ b/models/mobile-sam/index.html @@ -1039,7 +1039,7 @@

What are the primary use c 📅 Created 1 year ago -✏️ Updated 0 days ago +✏️ Updated 1 day ago

diff --git a/models/rtdetr/index.html b/models/rtdetr/index.html index 9deed421e7..dc53604697 100644 --- a/models/rtdetr/index.html +++ b/models/rtdetr/index.html @@ -863,7 +863,7 @@

📅 Created 1 year ago -✏️ Updated 28 days ago +✏️ Updated 29 days ago

diff --git a/models/sam-2/index.html b/models/sam-2/index.html index 92bb7e8117..5bb4db9f53 100644 --- a/models/sam-2/index.html +++ b/models/sam-2/index.html @@ -1643,7 +1643,7 @@

How doe 📅 Created 5 months ago -✏️ Updated 6 days ago +✏️ Updated 7 days ago

diff --git a/models/yolo-world/index.html b/models/yolo-world/index.html index 6c2ce6da08..b900bae356 100644 --- a/models/yolo-world/index.html +++ b/models/yolo-world/index.html @@ -1494,7 +1494,7 @@

How 📅 Created 11 months ago -✏️ Updated 28 days ago +✏️ Updated 29 days ago

diff --git a/models/yolov6/index.html b/models/yolov6/index.html index 8fcdbdb9fe..6ad71c2f9e 100644 --- a/models/yolov6/index.html +++ b/models/yolov6/index.html @@ -907,7 +907,7 @@

W 📅 Created 1 year ago -✏️ Updated 16 days ago +✏️ Updated 17 days ago

diff --git a/models/yolov7/index.html b/models/yolov7/index.html index f9bffa8451..10b2d55e40 100644 --- a/models/yolov7/index.html +++ b/models/yolov7/index.html @@ -1275,7 +1275,7 @@

What a 📅 Created 1 year ago -✏️ Updated 28 days ago +✏️ Updated 29 days ago

diff --git a/models/yolov8/index.html b/models/yolov8/index.html index 0a72c50a6d..951a3a3a07 100644 --- a/models/yolov8/index.html +++ b/models/yolov8/index.html @@ -1311,7 +1311,7 @@

Can I benchmark YOLOv8 mo 📅 Created 1 year ago -✏️ Updated 3 days ago +✏️ Updated 4 days ago

diff --git a/modes/predict/index.html b/modes/predict/index.html index b31ced6200..ea89850f46 100644 --- a/modes/predict/index.html +++ b/modes/predict/index.html @@ -2436,7 +2436,7 @@

How can I 📅 Created 1 year ago -✏️ Updated 2 months ago +✏️ Updated 3 months ago

diff --git a/reference/data/utils/index.html b/reference/data/utils/index.html index bc74139657..06871001d4 100644 --- a/reference/data/utils/index.html +++ b/reference/data/utils/index.html @@ -3495,7 +3495,7 @@

📅 Created 1 year ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/reference/solutions/parking_management/index.html b/reference/solutions/parking_management/index.html index 613e2fe704..6bb61f9b44 100644 --- a/reference/solutions/parking_management/index.html +++ b/reference/solutions/parking_management/index.html @@ -2038,7 +2038,7 @@

-📅 Created 8 months ago +📅 Created 9 months ago ✏️ Updated 4 months ago diff --git a/reference/utils/__init__/index.html b/reference/utils/__init__/index.html index 7aacd74053..6a21625a9d 100644 --- a/reference/utils/__init__/index.html +++ b/reference/utils/__init__/index.html @@ -1981,7 +1981,7 @@

- Bases: tqdm

+ Bases: tqdm if TQDM_RICH else tqdm

A custom TQDM progress bar class that extends the original tqdm functionality.

This class modifies the behavior of the original tqdm progress bar based on global settings and provides additional customization options.

@@ -2099,11 +2099,7 @@

Source code in ultralytics/utils/__init__.py -
159
-160
-161
-162
-163
+
163
 164
 165
 166
@@ -2121,29 +2117,35 @@ 

178 179 180 -181

def __init__(self, *args, **kwargs):
-    """
-    Initializes a custom TQDM progress bar.
-
-    This class extends the original tqdm class to provide customized behavior for Ultralytics projects.
-
-    Args:
-        *args (Any): Variable length argument list to be passed to the original tqdm constructor.
-        **kwargs (Any): Arbitrary keyword arguments to be passed to the original tqdm constructor.
+181
+182
+183
+184
+185
+186
def __init__(self, *args, **kwargs):
+    """
+    Initializes a custom TQDM progress bar.
+
+    This class extends the original tqdm class to provide customized behavior for Ultralytics projects.
 
-    Notes:
-        - The progress bar is disabled if VERBOSE is False or if 'disable' is explicitly set to True in kwargs.
-        - The default bar format is set to TQDM_BAR_FORMAT unless overridden in kwargs.
+    Args:
+        *args (Any): Variable length argument list to be passed to the original tqdm constructor.
+        **kwargs (Any): Arbitrary keyword arguments to be passed to the original tqdm constructor.
 
-    Examples:
-        >>> from ultralytics.utils import TQDM
-        >>> for i in TQDM(range(100)):
-        ...     # Your code here
-        ...     pass
-    """
-    kwargs["disable"] = not VERBOSE or kwargs.get("disable", False)  # logical 'and' with default value if passed
-    kwargs.setdefault("bar_format", TQDM_BAR_FORMAT)  # override default value if passed
-    super().__init__(*args, **kwargs)
+    Notes:
+        - The progress bar is disabled if VERBOSE is False or if 'disable' is explicitly set to True in kwargs.
+        - The default bar format is set to TQDM_BAR_FORMAT unless overridden in kwargs.
+
+    Examples:
+        >>> from ultralytics.utils import TQDM
+        >>> for i in TQDM(range(100)):
+        ...     # Your code here
+        ...     pass
+    """
+    warnings.filterwarnings("ignore", category=tqdm.TqdmExperimentalWarning)  # suppress tqdm.rich warning
+    kwargs["disable"] = not VERBOSE or kwargs.get("disable", False)
+    kwargs.setdefault("bar_format", TQDM_BAR_FORMAT)  # override default value if passed
+    super().__init__(*args, **kwargs)
 
@@ -2223,13 +2225,13 @@

Custom attribute access error message with helpful information.

Source code in ultralytics/utils/__init__.py -
def __getattr__(self, attr):
-    """Custom attribute access error message with helpful information."""
-    name = self.__class__.__name__
-    raise AttributeError(f"'{name}' object has no attribute '{attr}'. See valid attributes below.\n{self.__doc__}")
+
def __getattr__(self, attr):
+    """Custom attribute access error message with helpful information."""
+    name = self.__class__.__name__
+    raise AttributeError(f"'{name}' object has no attribute '{attr}'. See valid attributes below.\n{self.__doc__}")
 
@@ -2244,11 +2246,11 @@

Return a machine-readable string representation of the object.

Source code in ultralytics/utils/__init__.py -
def __repr__(self):
-    """Return a machine-readable string representation of the object."""
-    return self.__str__()
+
def __repr__(self):
+    """Return a machine-readable string representation of the object."""
+    return self.__str__()
 
@@ -2263,31 +2265,31 @@

Return a human-readable string representation of the object.

Source code in ultralytics/utils/__init__.py -
214
-215
-216
-217
-218
-219
+
def __str__(self):
-    """Return a human-readable string representation of the object."""
-    attr = []
-    for a in dir(self):
-        v = getattr(self, a)
-        if not callable(v) and not a.startswith("_"):
-            if isinstance(v, SimpleClass):
-                # Display only the module and class name for subclasses
-                s = f"{a}: {v.__module__}.{v.__class__.__name__} object"
-            else:
-                s = f"{a}: {repr(v)}"
-            attr.append(s)
-    return f"{self.__module__}.{self.__class__.__name__} object with attributes:\n\n" + "\n".join(attr)
+226
+227
+228
+229
+230
+231
def __str__(self):
+    """Return a human-readable string representation of the object."""
+    attr = []
+    for a in dir(self):
+        v = getattr(self, a)
+        if not callable(v) and not a.startswith("_"):
+            if isinstance(v, SimpleClass):
+                # Display only the module and class name for subclasses
+                s = f"{a}: {v.__module__}.{v.__class__.__name__} object"
+            else:
+                s = f"{a}: {repr(v)}"
+            attr.append(s)
+    return f"{self.__module__}.{self.__class__.__name__} object with attributes:\n\n" + "\n".join(attr)
 
@@ -2381,27 +2383,27 @@

Source code in ultralytics/utils/__init__.py -
281
-282
-283
-284
-285
-286
+
def __getattr__(self, attr):
-    """Custom attribute access error message with helpful information."""
-    name = self.__class__.__name__
-    raise AttributeError(
-        f"""
-        '{name}' object has no attribute '{attr}'. This may be caused by a modified or out of date ultralytics
-        'default.yaml' file.\nPlease update your code with 'pip install -U ultralytics' and if necessary replace
-        {DEFAULT_CFG_PATH} with the latest version from
-        https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/default.yaml
-        """
-    )
+291
+292
+293
+294
+295
+296
def __getattr__(self, attr):
+    """Custom attribute access error message with helpful information."""
+    name = self.__class__.__name__
+    raise AttributeError(
+        f"""
+        '{name}' object has no attribute '{attr}'. This may be caused by a modified or out of date ultralytics
+        'default.yaml' file.\nPlease update your code with 'pip install -U ultralytics' and if necessary replace
+        {DEFAULT_CFG_PATH} with the latest version from
+        https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/default.yaml
+        """
+    )
 
@@ -2416,11 +2418,11 @@

Source code in ultralytics/utils/__init__.py -
def __iter__(self):
-    """Return an iterator of key-value pairs from the namespace's attributes."""
-    return iter(vars(self).items())
+
def __iter__(self):
+    """Return an iterator of key-value pairs from the namespace's attributes."""
+    return iter(vars(self).items())
 
@@ -2435,11 +2437,11 @@

Source code in ultralytics/utils/__init__.py -
def __str__(self):
-    """Return a human-readable string representation of the object."""
-    return "\n".join(f"{k}={v}" for k, v in vars(self).items())
+
def __str__(self):
+    """Return a human-readable string representation of the object."""
+    return "\n".join(f"{k}={v}" for k, v in vars(self).items())
 
@@ -2454,11 +2456,11 @@

Return the value of the specified key if it exists; otherwise, return the default value.

Source code in ultralytics/utils/__init__.py -
def get(self, key, default=None):
-    """Return the value of the specified key if it exists; otherwise, return the default value."""
-    return getattr(self, key, default)
+
def get(self, key, default=None):
+    """Return the value of the specified key if it exists; otherwise, return the default value."""
+    return getattr(self, key, default)
 
@@ -2510,11 +2512,11 @@

Source code in ultralytics/utils/__init__.py -
def __init__(self):
-    """Initializes the decorator class for thread-safe execution of a function or method."""
-    self.lock = threading.Lock()
+
def __init__(self):
+    """Initializes the decorator class for thread-safe execution of a function or method."""
+    self.lock = threading.Lock()
 
@@ -2528,27 +2530,27 @@

Run thread-safe execution of function or method.

Source code in ultralytics/utils/__init__.py -
439
-440
-441
-442
-443
-444
+
def __call__(self, f):
-    """Run thread-safe execution of function or method."""
-    from functools import wraps
-
-    @wraps(f)
-    def decorated(*args, **kwargs):
-        """Applies thread-safety to the decorated function or method."""
-        with self.lock:
-            return f(*args, **kwargs)
-
-    return decorated
+449
+450
+451
+452
+453
+454
def __call__(self, f):
+    """Run thread-safe execution of function or method."""
+    from functools import wraps
+
+    @wraps(f)
+    def decorated(*args, **kwargs):
+        """Applies thread-safety to the decorated function or method."""
+        with self.lock:
+            return f(*args, **kwargs)
+
+    return decorated
 
@@ -2580,13 +2582,13 @@

Source code in ultralytics/utils/__init__.py -
def __init__(self, msg="", verbose=True):
-    """Initialize TryExcept class with optional message and verbosity settings."""
-    self.msg = msg
-    self.verbose = verbose
+
def __init__(self, msg="", verbose=True):
+    """Initialize TryExcept class with optional message and verbosity settings."""
+    self.msg = msg
+    self.verbose = verbose
 
@@ -2600,11 +2602,11 @@

Executes when entering TryExcept context, initializes instance.

Source code in ultralytics/utils/__init__.py -
def __enter__(self):
-    """Executes when entering TryExcept context, initializes instance."""
-    pass
+
def __enter__(self):
+    """Executes when entering TryExcept context, initializes instance."""
+    pass
 
@@ -2619,15 +2621,15 @@

Defines behavior when exiting a 'with' block, prints error message if necessary.

Source code in ultralytics/utils/__init__.py -
def __exit__(self, exc_type, value, traceback):
-    """Defines behavior when exiting a 'with' block, prints error message if necessary."""
-    if self.verbose and value:
-        print(emojis(f"{self.msg}{': ' if self.msg else ''}{value}"))
-    return True
+
def __exit__(self, exc_type, value, traceback):
+    """Defines behavior when exiting a 'with' block, prints error message if necessary."""
+    if self.verbose and value:
+        print(emojis(f"{self.msg}{': ' if self.msg else ''}{value}"))
+    return True
 
@@ -2656,15 +2658,15 @@

Source code in ultralytics/utils/__init__.py -
def __init__(self, times=3, delay=2):
-    """Initialize Retry class with specified number of retries and delay."""
-    self.times = times
-    self.delay = delay
-    self._attempts = 0
+
def __init__(self, times=3, delay=2):
+    """Initialize Retry class with specified number of retries and delay."""
+    self.times = times
+    self.delay = delay
+    self._attempts = 0
 
@@ -2678,12 +2680,7 @@

Decorator implementation for Retry with exponential backoff.

Source code in ultralytics/utils/__init__.py -
965
-966
-967
-968
-969
-970
+
970
 971
 972
 973
@@ -2694,23 +2691,28 @@ 

978 979 980 -981

def __call__(self, func):
-    """Decorator implementation for Retry with exponential backoff."""
-
-    def wrapped_func(*args, **kwargs):
-        """Applies retries to the decorated function or method."""
-        self._attempts = 0
-        while self._attempts < self.times:
-            try:
-                return func(*args, **kwargs)
-            except Exception as e:
-                self._attempts += 1
-                print(f"Retry {self._attempts}/{self.times} failed: {e}")
-                if self._attempts >= self.times:
-                    raise e
-                time.sleep(self.delay * (2**self._attempts))  # exponential backoff delay
-
-    return wrapped_func
+981
+982
+983
+984
+985
+986
def __call__(self, func):
+    """Decorator implementation for Retry with exponential backoff."""
+
+    def wrapped_func(*args, **kwargs):
+        """Applies retries to the decorated function or method."""
+        self._attempts = 0
+        while self._attempts < self.times:
+            try:
+                return func(*args, **kwargs)
+            except Exception as e:
+                self._attempts += 1
+                print(f"Retry {self._attempts}/{self.times} failed: {e}")
+                if self._attempts >= self.times:
+                    raise e
+                time.sleep(self.delay * (2**self._attempts))  # exponential backoff delay
+
+    return wrapped_func
 
@@ -2834,17 +2836,17 @@

Source code in ultralytics/utils/__init__.py -
def __init__(self, file_path: Union[str, Path] = "data.json"):
-    """Initialize a JSONDict object with a specified file path for JSON persistence."""
-    super().__init__()
-    self.file_path = Path(file_path)
-    self.lock = Lock()
-    self._load()
+
def __init__(self, file_path: Union[str, Path] = "data.json"):
+    """Initialize a JSONDict object with a specified file path for JSON persistence."""
+    super().__init__()
+    self.file_path = Path(file_path)
+    self.lock = Lock()
+    self._load()
 
@@ -2858,15 +2860,15 @@

Remove an item and update the persistent storage.

Source code in ultralytics/utils/__init__.py -
def __delitem__(self, key):
-    """Remove an item and update the persistent storage."""
-    with self.lock:
-        super().__delitem__(key)
-        self._save()
+
def __delitem__(self, key):
+    """Remove an item and update the persistent storage."""
+    with self.lock:
+        super().__delitem__(key)
+        self._save()
 
@@ -2881,15 +2883,15 @@

Store a key-value pair and persist to disk.

Source code in ultralytics/utils/__init__.py -
def __setitem__(self, key, value):
-    """Store a key-value pair and persist to disk."""
-    with self.lock:
-        super().__setitem__(key, value)
-        self._save()
+
def __setitem__(self, key, value):
+    """Store a key-value pair and persist to disk."""
+    with self.lock:
+        super().__setitem__(key, value)
+        self._save()
 
@@ -2904,13 +2906,13 @@

Return a pretty-printed JSON string representation of the dictionary.

Source code in ultralytics/utils/__init__.py -
def __str__(self):
-    """Return a pretty-printed JSON string representation of the dictionary."""
-    contents = json.dumps(dict(self), indent=2, ensure_ascii=False, default=self._json_default)
-    return f'JSONDict("{self.file_path}"):\n{contents}'
+
def __str__(self):
+    """Return a pretty-printed JSON string representation of the dictionary."""
+    contents = json.dumps(dict(self), indent=2, ensure_ascii=False, default=self._json_default)
+    return f'JSONDict("{self.file_path}"):\n{contents}'
 
@@ -2925,15 +2927,15 @@

Clear all entries and update the persistent storage.

Source code in ultralytics/utils/__init__.py -
def clear(self):
-    """Clear all entries and update the persistent storage."""
-    with self.lock:
-        super().clear()
-        self._save()
+
def clear(self):
+    """Clear all entries and update the persistent storage."""
+    with self.lock:
+        super().clear()
+        self._save()
 
@@ -2948,15 +2950,15 @@

Update the dictionary and persist changes.

Source code in ultralytics/utils/__init__.py -
def update(self, *args, **kwargs):
-    """Update the dictionary and persist changes."""
-    with self.lock:
-        super().update(*args, **kwargs)
-        self._save()
+
def update(self, *args, **kwargs):
+    """Update the dictionary and persist changes."""
+    with self.lock:
+        super().update(*args, **kwargs)
+        self._save()
 
@@ -3076,12 +3078,7 @@

Source code in ultralytics/utils/__init__.py -
1195
-1196
-1197
-1198
-1199
-1200
+
1200
 1201
 1202
 1203
@@ -3121,52 +3118,57 @@ 

1237 1238 1239 -1240

def __init__(self, file=SETTINGS_FILE, version="0.0.6"):
-    """Initializes the SettingsManager with default settings and loads user settings."""
-    import hashlib
-
-    from ultralytics.utils.torch_utils import torch_distributed_zero_first
-
-    root = GIT_DIR or Path()
-    datasets_root = (root.parent if GIT_DIR and is_dir_writeable(root.parent) else root).resolve()
+1240
+1241
+1242
+1243
+1244
+1245
def __init__(self, file=SETTINGS_FILE, version="0.0.6"):
+    """Initializes the SettingsManager with default settings and loads user settings."""
+    import hashlib
 
-    self.file = Path(file)
-    self.version = version
-    self.defaults = {
-        "settings_version": version,  # Settings schema version
-        "datasets_dir": str(datasets_root / "datasets"),  # Datasets directory
-        "weights_dir": str(root / "weights"),  # Model weights directory
-        "runs_dir": str(root / "runs"),  # Experiment runs directory
-        "uuid": hashlib.sha256(str(uuid.getnode()).encode()).hexdigest(),  # SHA-256 anonymized UUID hash
-        "sync": True,  # Enable synchronization
-        "api_key": "",  # Ultralytics API Key
-        "openai_api_key": "",  # OpenAI API Key
-        "clearml": True,  # ClearML integration
-        "comet": True,  # Comet integration
-        "dvc": True,  # DVC integration
-        "hub": True,  # Ultralytics HUB integration
-        "mlflow": True,  # MLflow integration
-        "neptune": True,  # Neptune integration
-        "raytune": True,  # Ray Tune integration
-        "tensorboard": True,  # TensorBoard logging
-        "wandb": False,  # Weights & Biases logging
-        "vscode_msg": True,  # VSCode messaging
-    }
-
-    self.help_msg = (
-        f"\nView Ultralytics Settings with 'yolo settings' or at '{self.file}'"
-        "\nUpdate Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. "
-        "For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings."
-    )
-
-    with torch_distributed_zero_first(RANK):
-        super().__init__(self.file)
-
-        if not self.file.exists() or not self:  # Check if file doesn't exist or is empty
-            LOGGER.info(f"Creating new Ultralytics Settings v{version} file ✅ {self.help_msg}")
-            self.reset()
-
-        self._validate_settings()
+    from ultralytics.utils.torch_utils import torch_distributed_zero_first
+
+    root = GIT_DIR or Path()
+    datasets_root = (root.parent if GIT_DIR and is_dir_writeable(root.parent) else root).resolve()
+
+    self.file = Path(file)
+    self.version = version
+    self.defaults = {
+        "settings_version": version,  # Settings schema version
+        "datasets_dir": str(datasets_root / "datasets"),  # Datasets directory
+        "weights_dir": str(root / "weights"),  # Model weights directory
+        "runs_dir": str(root / "runs"),  # Experiment runs directory
+        "uuid": hashlib.sha256(str(uuid.getnode()).encode()).hexdigest(),  # SHA-256 anonymized UUID hash
+        "sync": True,  # Enable synchronization
+        "api_key": "",  # Ultralytics API Key
+        "openai_api_key": "",  # OpenAI API Key
+        "clearml": True,  # ClearML integration
+        "comet": True,  # Comet integration
+        "dvc": True,  # DVC integration
+        "hub": True,  # Ultralytics HUB integration
+        "mlflow": True,  # MLflow integration
+        "neptune": True,  # Neptune integration
+        "raytune": True,  # Ray Tune integration
+        "tensorboard": True,  # TensorBoard logging
+        "wandb": False,  # Weights & Biases logging
+        "vscode_msg": True,  # VSCode messaging
+    }
+
+    self.help_msg = (
+        f"\nView Ultralytics Settings with 'yolo settings' or at '{self.file}'"
+        "\nUpdate Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. "
+        "For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings."
+    )
+
+    with torch_distributed_zero_first(RANK):
+        super().__init__(self.file)
+
+        if not self.file.exists() or not self:  # Check if file doesn't exist or is empty
+            LOGGER.info(f"Creating new Ultralytics Settings v{version} file ✅ {self.help_msg}")
+            self.reset()
+
+        self._validate_settings()
 
@@ -3180,11 +3182,11 @@

Updates one key: value pair.

Source code in ultralytics/utils/__init__.py -
def __setitem__(self, key, value):
-    """Updates one key: value pair."""
-    self.update({key: value})
+
def __setitem__(self, key, value):
+    """Updates one key: value pair."""
+    self.update({key: value})
 
@@ -3199,13 +3201,13 @@

Resets the settings to default and saves them.

Source code in ultralytics/utils/__init__.py -
def reset(self):
-    """Resets the settings to default and saves them."""
-    self.clear()
-    self.update(self.defaults)
+
def reset(self):
+    """Resets the settings to default and saves them."""
+    self.clear()
+    self.update(self.defaults)
 
@@ -3220,12 +3222,7 @@

Updates settings, validating keys and types.

Source code in ultralytics/utils/__init__.py -
1266
-1267
-1268
-1269
-1270
-1271
+
1271
 1272
 1273
 1274
@@ -3233,20 +3230,25 @@ 

1276 1277 1278 -1279

def update(self, *args, **kwargs):
-    """Updates settings, validating keys and types."""
-    for arg in args:
-        if isinstance(arg, dict):
-            kwargs.update(arg)
-    for k, v in kwargs.items():
-        if k not in self.defaults:
-            raise KeyError(f"No Ultralytics setting '{k}'. {self.help_msg}")
-        t = type(self.defaults[k])
-        if not isinstance(v, t):
-            raise TypeError(
-                f"Ultralytics setting '{k}' must be '{t.__name__}' type, not '{type(v).__name__}'. {self.help_msg}"
-            )
-    super().update(*args, **kwargs)
+1279
+1280
+1281
+1282
+1283
+1284
def update(self, *args, **kwargs):
+    """Updates settings, validating keys and types."""
+    for arg in args:
+        if isinstance(arg, dict):
+            kwargs.update(arg)
+    for k, v in kwargs.items():
+        if k not in self.defaults:
+            raise KeyError(f"No Ultralytics setting '{k}'. {self.help_msg}")
+        t = type(self.defaults[k])
+        if not isinstance(v, t):
+            raise TypeError(
+                f"Ultralytics setting '{k}' must be '{t.__name__}' type, not '{type(v).__name__}'. {self.help_msg}"
+            )
+    super().update(*args, **kwargs)
 
@@ -3336,12 +3338,7 @@

Source code in ultralytics/utils/__init__.py -
298
-299
-300
-301
-302
-303
+
303
 304
 305
 306
@@ -3378,49 +3375,54 @@ 

337 338 339 -340

def plt_settings(rcparams=None, backend="Agg"):
-    """
-    Decorator to temporarily set rc parameters and the backend for a plotting function.
-
-    Example:
-        decorator: @plt_settings({"font.size": 12})
-        context manager: with plt_settings({"font.size": 12}):
-
-    Args:
-        rcparams (dict): Dictionary of rc parameters to set.
-        backend (str, optional): Name of the backend to use. Defaults to 'Agg'.
-
-    Returns:
-        (Callable): Decorated function with temporarily set rc parameters and backend. This decorator can be
-            applied to any function that needs to have specific matplotlib rc parameters and backend for its execution.
-    """
-    if rcparams is None:
-        rcparams = {"font.size": 11}
-
-    def decorator(func):
-        """Decorator to apply temporary rc parameters and backend to a function."""
-
-        def wrapper(*args, **kwargs):
-            """Sets rc parameters and backend, calls the original function, and restores the settings."""
-            original_backend = plt.get_backend()
-            switch = backend.lower() != original_backend.lower()
-            if switch:
-                plt.close("all")  # auto-close()ing of figures upon backend switching is deprecated since 3.8
-                plt.switch_backend(backend)
-
-            # Plot with backend and always revert to original backend
-            try:
-                with plt.rc_context(rcparams):
-                    result = func(*args, **kwargs)
-            finally:
-                if switch:
-                    plt.close("all")
-                    plt.switch_backend(original_backend)
-            return result
-
-        return wrapper
-
-    return decorator
+340
+341
+342
+343
+344
+345
def plt_settings(rcparams=None, backend="Agg"):
+    """
+    Decorator to temporarily set rc parameters and the backend for a plotting function.
+
+    Example:
+        decorator: @plt_settings({"font.size": 12})
+        context manager: with plt_settings({"font.size": 12}):
+
+    Args:
+        rcparams (dict): Dictionary of rc parameters to set.
+        backend (str, optional): Name of the backend to use. Defaults to 'Agg'.
+
+    Returns:
+        (Callable): Decorated function with temporarily set rc parameters and backend. This decorator can be
+            applied to any function that needs to have specific matplotlib rc parameters and backend for its execution.
+    """
+    if rcparams is None:
+        rcparams = {"font.size": 11}
+
+    def decorator(func):
+        """Decorator to apply temporary rc parameters and backend to a function."""
+
+        def wrapper(*args, **kwargs):
+            """Sets rc parameters and backend, calls the original function, and restores the settings."""
+            original_backend = plt.get_backend()
+            switch = backend.lower() != original_backend.lower()
+            if switch:
+                plt.close("all")  # auto-close()ing of figures upon backend switching is deprecated since 3.8
+                plt.switch_backend(backend)
+
+            # Plot with backend and always revert to original backend
+            try:
+                with plt.rc_context(rcparams):
+                    result = func(*args, **kwargs)
+            finally:
+                if switch:
+                    plt.close("all")
+                    plt.switch_backend(original_backend)
+            return result
+
+        return wrapper
+
+    return decorator
 
@@ -3497,12 +3499,7 @@

Source code in ultralytics/utils/__init__.py -
343
-344
-345
-346
-347
-348
+
348
 349
 350
 351
@@ -3556,66 +3553,71 @@ 

399 400 401 -402

def set_logging(name="LOGGING_NAME", verbose=True):
-    """
-    Sets up logging with UTF-8 encoding and configurable verbosity.
-
-    This function configures logging for the Ultralytics library, setting the appropriate logging level and
-    formatter based on the verbosity flag and the current process rank. It handles special cases for Windows
-    environments where UTF-8 encoding might not be the default.
-
-    Args:
-        name (str): Name of the logger. Defaults to "LOGGING_NAME".
-        verbose (bool): Flag to set logging level to INFO if True, ERROR otherwise. Defaults to True.
-
-    Examples:
-        >>> set_logging(name="ultralytics", verbose=True)
-        >>> logger = logging.getLogger("ultralytics")
-        >>> logger.info("This is an info message")
+402
+403
+404
+405
+406
+407
def set_logging(name="LOGGING_NAME", verbose=True):
+    """
+    Sets up logging with UTF-8 encoding and configurable verbosity.
+
+    This function configures logging for the Ultralytics library, setting the appropriate logging level and
+    formatter based on the verbosity flag and the current process rank. It handles special cases for Windows
+    environments where UTF-8 encoding might not be the default.
+
+    Args:
+        name (str): Name of the logger. Defaults to "LOGGING_NAME".
+        verbose (bool): Flag to set logging level to INFO if True, ERROR otherwise. Defaults to True.
 
-    Notes:
-        - On Windows, this function attempts to reconfigure stdout to use UTF-8 encoding if possible.
-        - If reconfiguration is not possible, it falls back to a custom formatter that handles non-UTF-8 environments.
-        - The function sets up a StreamHandler with the appropriate formatter and level.
-        - The logger's propagate flag is set to False to prevent duplicate logging in parent loggers.
-    """
-    level = logging.INFO if verbose and RANK in {-1, 0} else logging.ERROR  # rank in world for Multi-GPU trainings
-
-    # Configure the console (stdout) encoding to UTF-8, with checks for compatibility
-    formatter = logging.Formatter("%(message)s")  # Default formatter
-    if WINDOWS and hasattr(sys.stdout, "encoding") and sys.stdout.encoding != "utf-8":
-
-        class CustomFormatter(logging.Formatter):
-            def format(self, record):
-                """Sets up logging with UTF-8 encoding and configurable verbosity."""
-                return emojis(super().format(record))
+    Examples:
+        >>> set_logging(name="ultralytics", verbose=True)
+        >>> logger = logging.getLogger("ultralytics")
+        >>> logger.info("This is an info message")
+
+    Notes:
+        - On Windows, this function attempts to reconfigure stdout to use UTF-8 encoding if possible.
+        - If reconfiguration is not possible, it falls back to a custom formatter that handles non-UTF-8 environments.
+        - The function sets up a StreamHandler with the appropriate formatter and level.
+        - The logger's propagate flag is set to False to prevent duplicate logging in parent loggers.
+    """
+    level = logging.INFO if verbose and RANK in {-1, 0} else logging.ERROR  # rank in world for Multi-GPU trainings
+
+    # Configure the console (stdout) encoding to UTF-8, with checks for compatibility
+    formatter = logging.Formatter("%(message)s")  # Default formatter
+    if WINDOWS and hasattr(sys.stdout, "encoding") and sys.stdout.encoding != "utf-8":
 
-        try:
-            # Attempt to reconfigure stdout to use UTF-8 encoding if possible
-            if hasattr(sys.stdout, "reconfigure"):
-                sys.stdout.reconfigure(encoding="utf-8")
-            # For environments where reconfigure is not available, wrap stdout in a TextIOWrapper
-            elif hasattr(sys.stdout, "buffer"):
-                import io
-
-                sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
-            else:
-                formatter = CustomFormatter("%(message)s")
-        except Exception as e:
-            print(f"Creating custom formatter for non UTF-8 environments due to {e}")
-            formatter = CustomFormatter("%(message)s")
-
-    # Create and configure the StreamHandler with the appropriate formatter and level
-    stream_handler = logging.StreamHandler(sys.stdout)
-    stream_handler.setFormatter(formatter)
-    stream_handler.setLevel(level)
+        class CustomFormatter(logging.Formatter):
+            def format(self, record):
+                """Sets up logging with UTF-8 encoding and configurable verbosity."""
+                return emojis(super().format(record))
+
+        try:
+            # Attempt to reconfigure stdout to use UTF-8 encoding if possible
+            if hasattr(sys.stdout, "reconfigure"):
+                sys.stdout.reconfigure(encoding="utf-8")
+            # For environments where reconfigure is not available, wrap stdout in a TextIOWrapper
+            elif hasattr(sys.stdout, "buffer"):
+                import io
+
+                sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding="utf-8")
+            else:
+                formatter = CustomFormatter("%(message)s")
+        except Exception as e:
+            print(f"Creating custom formatter for non UTF-8 environments due to {e}")
+            formatter = CustomFormatter("%(message)s")
 
-    # Set up the logger
-    logger = logging.getLogger(name)
-    logger.setLevel(level)
-    logger.addHandler(stream_handler)
-    logger.propagate = False
-    return logger
+    # Create and configure the StreamHandler with the appropriate formatter and level
+    stream_handler = logging.StreamHandler(sys.stdout)
+    stream_handler.setFormatter(formatter)
+    stream_handler.setLevel(level)
+
+    # Set up the logger
+    logger = logging.getLogger(name)
+    logger.setLevel(level)
+    logger.addHandler(stream_handler)
+    logger.propagate = False
+    return logger
 
@@ -3630,11 +3632,11 @@

Return platform-dependent emoji-safe version of string.

Source code in ultralytics/utils/__init__.py -
def emojis(string=""):
-    """Return platform-dependent emoji-safe version of string."""
-    return string.encode().decode("ascii", "ignore") if WINDOWS else string
+
def emojis(string=""):
+    """Return platform-dependent emoji-safe version of string."""
+    return string.encode().decode("ascii", "ignore") if WINDOWS else string
 
@@ -3731,12 +3733,7 @@

Source code in ultralytics/utils/__init__.py -
452
-453
-454
-455
-456
-457
+
457
 458
 459
 460
@@ -3760,36 +3757,41 @@ 

478 479 480 -481

def yaml_save(file="data.yaml", data=None, header=""):
-    """
-    Save YAML data to a file.
-
-    Args:
-        file (str, optional): File name. Default is 'data.yaml'.
-        data (dict): Data to save in YAML format.
-        header (str, optional): YAML header to add.
+481
+482
+483
+484
+485
+486
def yaml_save(file="data.yaml", data=None, header=""):
+    """
+    Save YAML data to a file.
 
-    Returns:
-        (None): Data is saved to the specified file.
-    """
-    if data is None:
-        data = {}
-    file = Path(file)
-    if not file.parent.exists():
-        # Create parent directories if they don't exist
-        file.parent.mkdir(parents=True, exist_ok=True)
-
-    # Convert Path objects to strings
-    valid_types = int, float, str, bool, list, tuple, dict, type(None)
-    for k, v in data.items():
-        if not isinstance(v, valid_types):
-            data[k] = str(v)
-
-    # Dump data to file in YAML format
-    with open(file, "w", errors="ignore", encoding="utf-8") as f:
-        if header:
-            f.write(header)
-        yaml.safe_dump(data, f, sort_keys=False, allow_unicode=True)
+    Args:
+        file (str, optional): File name. Default is 'data.yaml'.
+        data (dict): Data to save in YAML format.
+        header (str, optional): YAML header to add.
+
+    Returns:
+        (None): Data is saved to the specified file.
+    """
+    if data is None:
+        data = {}
+    file = Path(file)
+    if not file.parent.exists():
+        # Create parent directories if they don't exist
+        file.parent.mkdir(parents=True, exist_ok=True)
+
+    # Convert Path objects to strings
+    valid_types = int, float, str, bool, list, tuple, dict, type(None)
+    for k, v in data.items():
+        if not isinstance(v, valid_types):
+            data[k] = str(v)
+
+    # Dump data to file in YAML format
+    with open(file, "w", errors="ignore", encoding="utf-8") as f:
+        if header:
+            f.write(header)
+        yaml.safe_dump(data, f, sort_keys=False, allow_unicode=True)
 
@@ -3870,12 +3872,7 @@

Source code in ultralytics/utils/__init__.py -
484
-485
-486
-487
-488
-489
+
489
 490
 491
 492
@@ -3893,30 +3890,35 @@ 

504 505 506 -507

def yaml_load(file="data.yaml", append_filename=False):
-    """
-    Load YAML data from a file.
-
-    Args:
-        file (str, optional): File name. Default is 'data.yaml'.
-        append_filename (bool): Add the YAML filename to the YAML dictionary. Default is False.
-
-    Returns:
-        (dict): YAML data and file name.
-    """
-    assert Path(file).suffix in {".yaml", ".yml"}, f"Attempting to load non-YAML file {file} with yaml_load()"
-    with open(file, errors="ignore", encoding="utf-8") as f:
-        s = f.read()  # string
-
-        # Remove special characters
-        if not s.isprintable():
-            s = re.sub(r"[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]+", "", s)
-
-        # Add YAML filename to dict and return
-        data = yaml.safe_load(s) or {}  # always return a dict (yaml.safe_load() may return None for empty files)
-        if append_filename:
-            data["yaml_file"] = str(file)
-        return data
+507
+508
+509
+510
+511
+512
def yaml_load(file="data.yaml", append_filename=False):
+    """
+    Load YAML data from a file.
+
+    Args:
+        file (str, optional): File name. Default is 'data.yaml'.
+        append_filename (bool): Add the YAML filename to the YAML dictionary. Default is False.
+
+    Returns:
+        (dict): YAML data and file name.
+    """
+    assert Path(file).suffix in {".yaml", ".yml"}, f"Attempting to load non-YAML file {file} with yaml_load()"
+    with open(file, errors="ignore", encoding="utf-8") as f:
+        s = f.read()  # string
+
+        # Remove special characters
+        if not s.isprintable():
+            s = re.sub(r"[^\x09\x0A\x0D\x20-\x7E\x85\xA0-\uD7FF\uE000-\uFFFD\U00010000-\U0010ffff]+", "", s)
+
+        # Add YAML filename to dict and return
+        data = yaml.safe_load(s) or {}  # always return a dict (yaml.safe_load() may return None for empty files)
+        if append_filename:
+            data["yaml_file"] = str(file)
+        return data
 
@@ -3981,31 +3983,31 @@

Source code in ultralytics/utils/__init__.py -
510
-511
-512
-513
-514
-515
+
def yaml_print(yaml_file: Union[str, Path, dict]) -> None:
-    """
-    Pretty prints a YAML file or a YAML-formatted dictionary.
-
-    Args:
-        yaml_file: The file path of the YAML file or a YAML-formatted dictionary.
-
-    Returns:
-        (None)
-    """
-    yaml_dict = yaml_load(yaml_file) if isinstance(yaml_file, (str, Path)) else yaml_file
-    dump = yaml.dump(yaml_dict, sort_keys=False, allow_unicode=True, width=float("inf"))
-    LOGGER.info(f"Printing '{colorstr('bold', 'black', yaml_file)}'\n\n{dump}")
+522
+523
+524
+525
+526
+527
def yaml_print(yaml_file: Union[str, Path, dict]) -> None:
+    """
+    Pretty prints a YAML file or a YAML-formatted dictionary.
+
+    Args:
+        yaml_file: The file path of the YAML file or a YAML-formatted dictionary.
+
+    Returns:
+        (None)
+    """
+    yaml_dict = yaml_load(yaml_file) if isinstance(yaml_file, (str, Path)) else yaml_file
+    dump = yaml.dump(yaml_dict, sort_keys=False, allow_unicode=True, width=float("inf"))
+    LOGGER.info(f"Printing '{colorstr('bold', 'black', yaml_file)}'\n\n{dump}")
 
@@ -4042,23 +4044,23 @@

Source code in ultralytics/utils/__init__.py -
535
-536
-537
-538
-539
-540
+
def read_device_model() -> str:
-    """
-    Reads the device model information from the system and caches it for quick access. Used by is_jetson() and
-    is_raspberrypi().
-
-    Returns:
-        (str): Kernel release information.
-    """
-    return platform.release().lower()
+543
+544
+545
+546
+547
+548
def read_device_model() -> str:
+    """
+    Reads the device model information from the system and caches it for quick access. Used by is_jetson() and
+    is_raspberrypi().
+
+    Returns:
+        (str): Kernel release information.
+    """
+    return platform.release().lower()
 
@@ -4094,29 +4096,29 @@

Source code in ultralytics/utils/__init__.py -
546
-547
-548
-549
-550
-551
+
def is_ubuntu() -> bool:
-    """
-    Check if the OS is Ubuntu.
-
-    Returns:
-        (bool): True if OS is Ubuntu, False otherwise.
-    """
-    try:
-        with open("/etc/os-release") as f:
-            return "ID=ubuntu" in f.read()
-    except FileNotFoundError:
-        return False
+557
+558
+559
+560
+561
+562
def is_ubuntu() -> bool:
+    """
+    Check if the OS is Ubuntu.
+
+    Returns:
+        (bool): True if OS is Ubuntu, False otherwise.
+    """
+    try:
+        with open("/etc/os-release") as f:
+            return "ID=ubuntu" in f.read()
+    except FileNotFoundError:
+        return False
 
@@ -4152,21 +4154,21 @@

Source code in ultralytics/utils/__init__.py -
560
-561
-562
-563
-564
-565
+
def is_colab():
-    """
-    Check if the current script is running inside a Google Colab notebook.
-
-    Returns:
-        (bool): True if running inside a Colab notebook, False otherwise.
-    """
-    return "COLAB_RELEASE_TAG" in os.environ or "COLAB_BACKEND_VERSION" in os.environ
+567
+568
+569
+570
+571
+572
def is_colab():
+    """
+    Check if the current script is running inside a Google Colab notebook.
+
+    Returns:
+        (bool): True if running inside a Colab notebook, False otherwise.
+    """
+    return "COLAB_RELEASE_TAG" in os.environ or "COLAB_BACKEND_VERSION" in os.environ
 
@@ -4202,21 +4204,21 @@

Source code in ultralytics/utils/__init__.py -
570
-571
-572
-573
-574
-575
+
def is_kaggle():
-    """
-    Check if the current script is running inside a Kaggle kernel.
-
-    Returns:
-        (bool): True if running inside a Kaggle kernel, False otherwise.
-    """
-    return os.environ.get("PWD") == "/kaggle/working" and os.environ.get("KAGGLE_URL_BASE") == "https://www.kaggle.com"
+577
+578
+579
+580
+581
+582
def is_kaggle():
+    """
+    Check if the current script is running inside a Kaggle kernel.
+
+    Returns:
+        (bool): True if running inside a Kaggle kernel, False otherwise.
+    """
+    return os.environ.get("PWD") == "/kaggle/working" and os.environ.get("KAGGLE_URL_BASE") == "https://www.kaggle.com"
 
@@ -4259,29 +4261,29 @@

Source code in ultralytics/utils/__init__.py -
580
-581
-582
-583
-584
-585
+
def is_jupyter():
-    """
-    Check if the current script is running inside a Jupyter Notebook.
-
-    Returns:
-        (bool): True if running inside a Jupyter Notebook, False otherwise.
-
-    Note:
-        - Only works on Colab and Kaggle, other environments like Jupyterlab and Paperspace are not reliably detectable.
-        - "get_ipython" in globals() method suffers false positives when IPython package installed manually.
-    """
-    return IS_COLAB or IS_KAGGLE
+591
+592
+593
+594
+595
+596
def is_jupyter():
+    """
+    Check if the current script is running inside a Jupyter Notebook.
+
+    Returns:
+        (bool): True if running inside a Jupyter Notebook, False otherwise.
+
+    Note:
+        - Only works on Colab and Kaggle, other environments like Jupyterlab and Paperspace are not reliably detectable.
+        - "get_ipython" in globals() method suffers false positives when IPython package installed manually.
+    """
+    return IS_COLAB or IS_KAGGLE
 
@@ -4317,21 +4319,21 @@

Source code in ultralytics/utils/__init__.py -
594
-595
-596
-597
-598
-599
+
def is_runpod():
-    """
-    Check if the current script is running inside a RunPod container.
-
-    Returns:
-        (bool): True if running in RunPod, False otherwise.
-    """
-    return "RUNPOD_POD_ID" in os.environ
+601
+602
+603
+604
+605
+606
def is_runpod():
+    """
+    Check if the current script is running inside a RunPod container.
+
+    Returns:
+        (bool): True if running in RunPod, False otherwise.
+    """
+    return "RUNPOD_POD_ID" in os.environ
 
@@ -4367,29 +4369,29 @@

Source code in ultralytics/utils/__init__.py -
604
-605
-606
-607
-608
-609
+
def is_docker() -> bool:
-    """
-    Determine if the script is running inside a Docker container.
-
-    Returns:
-        (bool): True if the script is running inside a Docker container, False otherwise.
-    """
-    try:
-        with open("/proc/self/cgroup") as f:
-            return "docker" in f.read()
-    except Exception:
-        return False
+615
+616
+617
+618
+619
+620
def is_docker() -> bool:
+    """
+    Determine if the script is running inside a Docker container.
+
+    Returns:
+        (bool): True if the script is running inside a Docker container, False otherwise.
+    """
+    try:
+        with open("/proc/self/cgroup") as f:
+            return "docker" in f.read()
+    except Exception:
+        return False
 
@@ -4425,21 +4427,21 @@

Source code in ultralytics/utils/__init__.py -
618
-619
-620
-621
-622
-623
+
def is_raspberrypi() -> bool:
-    """
-    Determines if the Python environment is running on a Raspberry Pi by checking the device model information.
-
-    Returns:
-        (bool): True if running on a Raspberry Pi, False otherwise.
-    """
-    return "rpi" in DEVICE_MODEL
+625
+626
+627
+628
+629
+630
def is_raspberrypi() -> bool:
+    """
+    Determines if the Python environment is running on a Raspberry Pi by checking the device model information.
+
+    Returns:
+        (bool): True if running on a Raspberry Pi, False otherwise.
+    """
+    return "rpi" in DEVICE_MODEL
 
@@ -4475,21 +4477,21 @@

Source code in ultralytics/utils/__init__.py -
628
-629
-630
-631
-632
-633
+
def is_jetson() -> bool:
-    """
-    Determines if the Python environment is running on an NVIDIA Jetson device by checking the device model information.
-
-    Returns:
-        (bool): True if running on an NVIDIA Jetson device, False otherwise.
-    """
-    return "tegra" in DEVICE_MODEL
+635
+636
+637
+638
+639
+640
def is_jetson() -> bool:
+    """
+    Determines if the Python environment is running on an NVIDIA Jetson device by checking the device model information.
+
+    Returns:
+        (bool): True if running on an NVIDIA Jetson device, False otherwise.
+    """
+    return "tegra" in DEVICE_MODEL
 
@@ -4525,12 +4527,7 @@

Source code in ultralytics/utils/__init__.py -
638
-639
-640
-641
-642
-643
+
643
 644
 645
 646
@@ -4540,22 +4537,27 @@ 

650 651 652 -653

def is_online() -> bool:
-    """
-    Check internet connectivity by attempting to connect to a known online host.
-
-    Returns:
-        (bool): True if connection is successful, False otherwise.
-    """
-    try:
-        assert str(os.getenv("YOLO_OFFLINE", "")).lower() != "true"  # check if ENV var YOLO_OFFLINE="True"
-        import socket
-
-        for dns in ("1.1.1.1", "8.8.8.8"):  # check Cloudflare and Google DNS
-            socket.create_connection(address=(dns, 80), timeout=2.0).close()
-            return True
-    except Exception:
-        return False
+653
+654
+655
+656
+657
+658
def is_online() -> bool:
+    """
+    Check internet connectivity by attempting to connect to a known online host.
+
+    Returns:
+        (bool): True if connection is successful, False otherwise.
+    """
+    try:
+        assert str(os.getenv("YOLO_OFFLINE", "")).lower() != "true"  # check if ENV var YOLO_OFFLINE="True"
+        import socket
+
+        for dns in ("1.1.1.1", "8.8.8.8"):  # check Cloudflare and Google DNS
+            socket.create_connection(address=(dns, 80), timeout=2.0).close()
+            return True
+    except Exception:
+        return False
 
@@ -4620,12 +4622,7 @@

Source code in ultralytics/utils/__init__.py -
656
-657
-658
-659
-660
-661
+
661
 662
 663
 664
@@ -4636,23 +4633,28 @@ 

669 670 671 -672

def is_pip_package(filepath: str = __name__) -> bool:
-    """
-    Determines if the file at the given filepath is part of a pip package.
-
-    Args:
-        filepath (str): The filepath to check.
-
-    Returns:
-        (bool): True if the file is part of a pip package, False otherwise.
-    """
-    import importlib.util
+672
+673
+674
+675
+676
+677
def is_pip_package(filepath: str = __name__) -> bool:
+    """
+    Determines if the file at the given filepath is part of a pip package.
+
+    Args:
+        filepath (str): The filepath to check.
 
-    # Get the spec for the module
-    spec = importlib.util.find_spec(filepath)
-
-    # Return whether the spec is not None and the origin is not None (indicating it is a package)
-    return spec is not None and spec.origin is not None
+    Returns:
+        (bool): True if the file is part of a pip package, False otherwise.
+    """
+    import importlib.util
+
+    # Get the spec for the module
+    spec = importlib.util.find_spec(filepath)
+
+    # Return whether the spec is not None and the origin is not None (indicating it is a package)
+    return spec is not None and spec.origin is not None
 
@@ -4717,27 +4719,27 @@

Source code in ultralytics/utils/__init__.py -
675
-676
-677
-678
-679
-680
+
def is_dir_writeable(dir_path: Union[str, Path]) -> bool:
-    """
-    Check if a directory is writeable.
-
-    Args:
-        dir_path (str | Path): The path to the directory.
-
-    Returns:
-        (bool): True if the directory is writeable, False otherwise.
-    """
-    return os.access(str(dir_path), os.W_OK)
+685
+686
+687
+688
+689
+690
def is_dir_writeable(dir_path: Union[str, Path]) -> bool:
+    """
+    Check if a directory is writeable.
+
+    Args:
+        dir_path (str | Path): The path to the directory.
+
+    Returns:
+        (bool): True if the directory is writeable, False otherwise.
+    """
+    return os.access(str(dir_path), os.W_OK)
 
@@ -4773,21 +4775,21 @@

Source code in ultralytics/utils/__init__.py -
688
-689
-690
-691
-692
-693
+
def is_pytest_running():
-    """
-    Determines whether pytest is currently running or not.
-
-    Returns:
-        (bool): True if pytest is running, False otherwise.
-    """
-    return ("PYTEST_CURRENT_TEST" in os.environ) or ("pytest" in sys.modules) or ("pytest" in Path(ARGV[0]).stem)
+695
+696
+697
+698
+699
+700
def is_pytest_running():
+    """
+    Determines whether pytest is currently running or not.
+
+    Returns:
+        (bool): True if pytest is running, False otherwise.
+    """
+    return ("PYTEST_CURRENT_TEST" in os.environ) or ("pytest" in sys.modules) or ("pytest" in Path(ARGV[0]).stem)
 
@@ -4823,21 +4825,21 @@

Source code in ultralytics/utils/__init__.py -
698
-699
-700
-701
-702
-703
+
def is_github_action_running() -> bool:
-    """
-    Determine if the current environment is a GitHub Actions runner.
-
-    Returns:
-        (bool): True if the current environment is a GitHub Actions runner, False otherwise.
-    """
-    return "GITHUB_ACTIONS" in os.environ and "GITHUB_WORKFLOW" in os.environ and "RUNNER_OS" in os.environ
+705
+706
+707
+708
+709
+710
def is_github_action_running() -> bool:
+    """
+    Determine if the current environment is a GitHub Actions runner.
+
+    Returns:
+        (bool): True if the current environment is a GitHub Actions runner, False otherwise.
+    """
+    return "GITHUB_ACTIONS" in os.environ and "GITHUB_WORKFLOW" in os.environ and "RUNNER_OS" in os.environ
 
@@ -4874,27 +4876,27 @@

Source code in ultralytics/utils/__init__.py -
708
-709
-710
-711
-712
-713
+
def get_git_dir():
-    """
-    Determines whether the current file is part of a git repository and if so, returns the repository root directory. If
-    the current file is not part of a git repository, returns None.
-
-    Returns:
-        (Path | None): Git root directory if found or None if not found.
-    """
-    for d in Path(__file__).parents:
-        if (d / ".git").is_dir():
-            return d
+718
+719
+720
+721
+722
+723
def get_git_dir():
+    """
+    Determines whether the current file is part of a git repository and if so, returns the repository root directory. If
+    the current file is not part of a git repository, returns None.
+
+    Returns:
+        (Path | None): Git root directory if found or None if not found.
+    """
+    for d in Path(__file__).parents:
+        if (d / ".git").is_dir():
+            return d
 
@@ -4931,23 +4933,23 @@

Source code in ultralytics/utils/__init__.py -
721
-722
-723
-724
-725
-726
+
def is_git_dir():
-    """
-    Determines whether the current file is part of a git repository. If the current file is not part of a git
-    repository, returns None.
-
-    Returns:
-        (bool): True if current file is part of a git repository.
-    """
-    return GIT_DIR is not None
+729
+730
+731
+732
+733
+734
def is_git_dir():
+    """
+    Determines whether the current file is part of a git repository. If the current file is not part of a git
+    repository, returns None.
+
+    Returns:
+        (bool): True if current file is part of a git repository.
+    """
+    return GIT_DIR is not None
 
@@ -4983,31 +4985,31 @@

Source code in ultralytics/utils/__init__.py -
732
-733
-734
-735
-736
-737
+
def get_git_origin_url():
-    """
-    Retrieves the origin URL of a git repository.
-
-    Returns:
-        (str | None): The origin URL of the git repository or None if not git directory.
-    """
-    if IS_GIT_DIR:
-        try:
-            origin = subprocess.check_output(["git", "config", "--get", "remote.origin.url"])
-            return origin.decode().strip()
-        except subprocess.CalledProcessError:
-            return None
+744
+745
+746
+747
+748
+749
def get_git_origin_url():
+    """
+    Retrieves the origin URL of a git repository.
+
+    Returns:
+        (str | None): The origin URL of the git repository or None if not git directory.
+    """
+    if IS_GIT_DIR:
+        try:
+            origin = subprocess.check_output(["git", "config", "--get", "remote.origin.url"])
+            return origin.decode().strip()
+        except subprocess.CalledProcessError:
+            return None
 
@@ -5043,31 +5045,31 @@

Source code in ultralytics/utils/__init__.py -
747
-748
-749
-750
-751
-752
+
def get_git_branch():
-    """
-    Returns the current git branch name. If not in a git repository, returns None.
-
-    Returns:
-        (str | None): The current git branch name or None if not a git directory.
-    """
-    if IS_GIT_DIR:
-        try:
-            origin = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"])
-            return origin.decode().strip()
-        except subprocess.CalledProcessError:
-            return None
+759
+760
+761
+762
+763
+764
def get_git_branch():
+    """
+    Returns the current git branch name. If not in a git repository, returns None.
+
+    Returns:
+        (str | None): The current git branch name or None if not a git directory.
+    """
+    if IS_GIT_DIR:
+        try:
+            origin = subprocess.check_output(["git", "rev-parse", "--abbrev-ref", "HEAD"])
+            return origin.decode().strip()
+        except subprocess.CalledProcessError:
+            return None
 
@@ -5132,29 +5134,29 @@

Source code in ultralytics/utils/__init__.py -
762
-763
-764
-765
-766
-767
+
def get_default_args(func):
-    """
-    Returns a dictionary of default arguments for a function.
-
-    Args:
-        func (callable): The function to inspect.
-
-    Returns:
-        (dict): A dictionary where each key is a parameter name, and each value is the default value of that parameter.
-    """
-    signature = inspect.signature(func)
-    return {k: v.default for k, v in signature.parameters.items() if v.default is not inspect.Parameter.empty}
+773
+774
+775
+776
+777
+778
def get_default_args(func):
+    """
+    Returns a dictionary of default arguments for a function.
+
+    Args:
+        func (callable): The function to inspect.
+
+    Returns:
+        (dict): A dictionary where each key is a parameter name, and each value is the default value of that parameter.
+    """
+    signature = inspect.signature(func)
+    return {k: v.default for k, v in signature.parameters.items() if v.default is not inspect.Parameter.empty}
 
@@ -5190,31 +5192,31 @@

Source code in ultralytics/utils/__init__.py -
776
-777
-778
-779
-780
-781
+
def get_ubuntu_version():
-    """
-    Retrieve the Ubuntu version if the OS is Ubuntu.
-
-    Returns:
-        (str): Ubuntu version or None if not an Ubuntu OS.
-    """
-    if is_ubuntu():
-        try:
-            with open("/etc/os-release") as f:
-                return re.search(r'VERSION_ID="(\d+\.\d+)"', f.read())[1]
-        except (FileNotFoundError, AttributeError):
-            return None
+788
+789
+790
+791
+792
+793
def get_ubuntu_version():
+    """
+    Retrieve the Ubuntu version if the OS is Ubuntu.
+
+    Returns:
+        (str): Ubuntu version or None if not an Ubuntu OS.
+    """
+    if is_ubuntu():
+        try:
+            with open("/etc/os-release") as f:
+                return re.search(r'VERSION_ID="(\d+\.\d+)"', f.read())[1]
+        except (FileNotFoundError, AttributeError):
+            return None
 
@@ -5279,12 +5281,7 @@

Source code in ultralytics/utils/__init__.py -
791
-792
-793
-794
-795
-796
+
796
 797
 798
 799
@@ -5309,37 +5306,42 @@ 

818 819 820 -821

def get_user_config_dir(sub_dir="Ultralytics"):
-    """
-    Return the appropriate config directory based on the environment operating system.
-
-    Args:
-        sub_dir (str): The name of the subdirectory to create.
-
-    Returns:
-        (Path): The path to the user config directory.
-    """
-    if WINDOWS:
-        path = Path.home() / "AppData" / "Roaming" / sub_dir
-    elif MACOS:  # macOS
-        path = Path.home() / "Library" / "Application Support" / sub_dir
-    elif LINUX:
-        path = Path.home() / ".config" / sub_dir
-    else:
-        raise ValueError(f"Unsupported operating system: {platform.system()}")
-
-    # GCP and AWS lambda fix, only /tmp is writeable
-    if not is_dir_writeable(path.parent):
-        LOGGER.warning(
-            f"WARNING ⚠️ user config directory '{path}' is not writeable, defaulting to '/tmp' or CWD."
-            "Alternatively you can define a YOLO_CONFIG_DIR environment variable for this path."
-        )
-        path = Path("/tmp") / sub_dir if is_dir_writeable("/tmp") else Path().cwd() / sub_dir
-
-    # Create the subdirectory if it does not exist
-    path.mkdir(parents=True, exist_ok=True)
-
-    return path
+821
+822
+823
+824
+825
+826
def get_user_config_dir(sub_dir="Ultralytics"):
+    """
+    Return the appropriate config directory based on the environment operating system.
+
+    Args:
+        sub_dir (str): The name of the subdirectory to create.
+
+    Returns:
+        (Path): The path to the user config directory.
+    """
+    if WINDOWS:
+        path = Path.home() / "AppData" / "Roaming" / sub_dir
+    elif MACOS:  # macOS
+        path = Path.home() / "Library" / "Application Support" / sub_dir
+    elif LINUX:
+        path = Path.home() / ".config" / sub_dir
+    else:
+        raise ValueError(f"Unsupported operating system: {platform.system()}")
+
+    # GCP and AWS lambda fix, only /tmp is writeable
+    if not is_dir_writeable(path.parent):
+        LOGGER.warning(
+            f"WARNING ⚠️ user config directory '{path}' is not writeable, defaulting to '/tmp' or CWD."
+            "Alternatively you can define a YOLO_CONFIG_DIR environment variable for this path."
+        )
+        path = Path("/tmp") / sub_dir if is_dir_writeable("/tmp") else Path().cwd() / sub_dir
+
+    # Create the subdirectory if it does not exist
+    path.mkdir(parents=True, exist_ok=True)
+
+    return path
 
@@ -5424,12 +5426,7 @@

Source code in ultralytics/utils/__init__.py -
840
-841
-842
-843
-844
-845
+
845
 846
 847
 848
@@ -5474,57 +5471,62 @@ 

887 888 889 -890

def colorstr(*input):
-    r"""
-    Colors a string based on the provided color and style arguments. Utilizes ANSI escape codes.
-    See https://en.wikipedia.org/wiki/ANSI_escape_code for more details.
-
-    This function can be called in two ways:
-        - colorstr('color', 'style', 'your string')
-        - colorstr('your string')
-
-    In the second form, 'blue' and 'bold' will be applied by default.
-
-    Args:
-        *input (str | Path): A sequence of strings where the first n-1 strings are color and style arguments,
-                      and the last string is the one to be colored.
-
-    Supported Colors and Styles:
-        Basic Colors: 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
-        Bright Colors: 'bright_black', 'bright_red', 'bright_green', 'bright_yellow',
-                       'bright_blue', 'bright_magenta', 'bright_cyan', 'bright_white'
-        Misc: 'end', 'bold', 'underline'
-
-    Returns:
-        (str): The input string wrapped with ANSI escape codes for the specified color and style.
-
-    Examples:
-        >>> colorstr("blue", "bold", "hello world")
-        >>> "\033[34m\033[1mhello world\033[0m"
-    """
-    *args, string = input if len(input) > 1 else ("blue", "bold", input[0])  # color arguments, string
-    colors = {
-        "black": "\033[30m",  # basic colors
-        "red": "\033[31m",
-        "green": "\033[32m",
-        "yellow": "\033[33m",
-        "blue": "\033[34m",
-        "magenta": "\033[35m",
-        "cyan": "\033[36m",
-        "white": "\033[37m",
-        "bright_black": "\033[90m",  # bright colors
-        "bright_red": "\033[91m",
-        "bright_green": "\033[92m",
-        "bright_yellow": "\033[93m",
-        "bright_blue": "\033[94m",
-        "bright_magenta": "\033[95m",
-        "bright_cyan": "\033[96m",
-        "bright_white": "\033[97m",
-        "end": "\033[0m",  # misc
-        "bold": "\033[1m",
-        "underline": "\033[4m",
-    }
-    return "".join(colors[x] for x in args) + f"{string}" + colors["end"]
+890
+891
+892
+893
+894
+895
def colorstr(*input):
+    r"""
+    Colors a string based on the provided color and style arguments. Utilizes ANSI escape codes.
+    See https://en.wikipedia.org/wiki/ANSI_escape_code for more details.
+
+    This function can be called in two ways:
+        - colorstr('color', 'style', 'your string')
+        - colorstr('your string')
+
+    In the second form, 'blue' and 'bold' will be applied by default.
+
+    Args:
+        *input (str | Path): A sequence of strings where the first n-1 strings are color and style arguments,
+                      and the last string is the one to be colored.
+
+    Supported Colors and Styles:
+        Basic Colors: 'black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white'
+        Bright Colors: 'bright_black', 'bright_red', 'bright_green', 'bright_yellow',
+                       'bright_blue', 'bright_magenta', 'bright_cyan', 'bright_white'
+        Misc: 'end', 'bold', 'underline'
+
+    Returns:
+        (str): The input string wrapped with ANSI escape codes for the specified color and style.
+
+    Examples:
+        >>> colorstr("blue", "bold", "hello world")
+        >>> "\033[34m\033[1mhello world\033[0m"
+    """
+    *args, string = input if len(input) > 1 else ("blue", "bold", input[0])  # color arguments, string
+    colors = {
+        "black": "\033[30m",  # basic colors
+        "red": "\033[31m",
+        "green": "\033[32m",
+        "yellow": "\033[33m",
+        "blue": "\033[34m",
+        "magenta": "\033[35m",
+        "cyan": "\033[36m",
+        "white": "\033[37m",
+        "bright_black": "\033[90m",  # bright colors
+        "bright_red": "\033[91m",
+        "bright_green": "\033[92m",
+        "bright_yellow": "\033[93m",
+        "bright_blue": "\033[94m",
+        "bright_magenta": "\033[95m",
+        "bright_cyan": "\033[96m",
+        "bright_white": "\033[97m",
+        "end": "\033[0m",  # misc
+        "bold": "\033[1m",
+        "underline": "\033[4m",
+    }
+    return "".join(colors[x] for x in args) + f"{string}" + colors["end"]
 
@@ -5593,12 +5595,7 @@

Source code in ultralytics/utils/__init__.py -
893
-894
-895
-896
-897
-898
+
898
 899
 900
 901
@@ -5608,22 +5605,27 @@ 

905 906 907 -908

def remove_colorstr(input_string):
-    """
-    Removes ANSI escape codes from a string, effectively un-coloring it.
-
-    Args:
-        input_string (str): The string to remove color and style from.
-
-    Returns:
-        (str): A new string with all ANSI escape codes removed.
-
-    Examples:
-        >>> remove_colorstr(colorstr("blue", "bold", "hello world"))
-        >>> "hello world"
-    """
-    ansi_escape = re.compile(r"\x1B\[[0-9;]*[A-Za-z]")
-    return ansi_escape.sub("", input_string)
+908
+909
+910
+911
+912
+913
def remove_colorstr(input_string):
+    """
+    Removes ANSI escape codes from a string, effectively un-coloring it.
+
+    Args:
+        input_string (str): The string to remove color and style from.
+
+    Returns:
+        (str): A new string with all ANSI escape codes removed.
+
+    Examples:
+        >>> remove_colorstr(colorstr("blue", "bold", "hello world"))
+        >>> "hello world"
+    """
+    ansi_escape = re.compile(r"\x1B\[[0-9;]*[A-Za-z]")
+    return ansi_escape.sub("", input_string)
 
@@ -5639,12 +5641,7 @@

Use as @threaded decorator. The function runs in a separate thread unless 'threaded=False' is passed.

Source code in ultralytics/utils/__init__.py -
 984
- 985
- 986
- 987
- 988
- 989
+
 989
  990
  991
  992
@@ -5655,23 +5652,28 @@ 

997 998 999 -1000

def threaded(func):
-    """
-    Multi-threads a target function by default and returns the thread or function result.
-
-    Use as @threaded decorator. The function runs in a separate thread unless 'threaded=False' is passed.
-    """
-
-    def wrapper(*args, **kwargs):
-        """Multi-threads a given function based on 'threaded' kwarg and returns the thread or function result."""
-        if kwargs.pop("threaded", True):  # run in thread
-            thread = threading.Thread(target=func, args=args, kwargs=kwargs, daemon=True)
-            thread.start()
-            return thread
-        else:
-            return func(*args, **kwargs)
-
-    return wrapper
+1000
+1001
+1002
+1003
+1004
+1005
def threaded(func):
+    """
+    Multi-threads a target function by default and returns the thread or function result.
+
+    Use as @threaded decorator. The function runs in a separate thread unless 'threaded=False' is passed.
+    """
+
+    def wrapper(*args, **kwargs):
+        """Multi-threads a given function based on 'threaded' kwarg and returns the thread or function result."""
+        if kwargs.pop("threaded", True):  # run in thread
+            thread = threading.Thread(target=func, args=args, kwargs=kwargs, daemon=True)
+            thread.start()
+            return thread
+        else:
+            return func(*args, **kwargs)
+
+    return wrapper
 
@@ -5699,12 +5701,7 @@

Additionally, the function sets custom tags and user information for Sentry events.

Source code in ultralytics/utils/__init__.py -
1003
-1004
-1005
-1006
-1007
-1008
+
1008
 1009
 1010
 1011
@@ -5769,77 +5766,82 @@ 

1070 1071 1072 -1073

def set_sentry():
-    """
-    Initialize the Sentry SDK for error tracking and reporting. Only used if sentry_sdk package is installed and
-    sync=True in settings. Run 'yolo settings' to see and update settings.
-
-    Conditions required to send errors (ALL conditions must be met or no errors will be reported):
-        - sentry_sdk package is installed
-        - sync=True in YOLO settings
-        - pytest is not running
-        - running in a pip package installation
-        - running in a non-git directory
-        - running with rank -1 or 0
-        - online environment
-        - CLI used to run package (checked with 'yolo' as the name of the main CLI command)
-
-    The function also configures Sentry SDK to ignore KeyboardInterrupt and FileNotFoundError exceptions and to exclude
-    events with 'out of memory' in their exception message.
-
-    Additionally, the function sets custom tags and user information for Sentry events.
-    """
-    if (
-        not SETTINGS["sync"]
-        or RANK not in {-1, 0}
-        or Path(ARGV[0]).name != "yolo"
-        or TESTS_RUNNING
-        or not ONLINE
-        or not IS_PIP_PACKAGE
-        or IS_GIT_DIR
-    ):
-        return
-    # If sentry_sdk package is not installed then return and do not use Sentry
-    try:
-        import sentry_sdk  # noqa
-    except ImportError:
+1073
+1074
+1075
+1076
+1077
+1078
def set_sentry():
+    """
+    Initialize the Sentry SDK for error tracking and reporting. Only used if sentry_sdk package is installed and
+    sync=True in settings. Run 'yolo settings' to see and update settings.
+
+    Conditions required to send errors (ALL conditions must be met or no errors will be reported):
+        - sentry_sdk package is installed
+        - sync=True in YOLO settings
+        - pytest is not running
+        - running in a pip package installation
+        - running in a non-git directory
+        - running with rank -1 or 0
+        - online environment
+        - CLI used to run package (checked with 'yolo' as the name of the main CLI command)
+
+    The function also configures Sentry SDK to ignore KeyboardInterrupt and FileNotFoundError exceptions and to exclude
+    events with 'out of memory' in their exception message.
+
+    Additionally, the function sets custom tags and user information for Sentry events.
+    """
+    if (
+        not SETTINGS["sync"]
+        or RANK not in {-1, 0}
+        or Path(ARGV[0]).name != "yolo"
+        or TESTS_RUNNING
+        or not ONLINE
+        or not IS_PIP_PACKAGE
+        or IS_GIT_DIR
+    ):
         return
-
-    def before_send(event, hint):
-        """
-        Modify the event before sending it to Sentry based on specific exception types and messages.
-
-        Args:
-            event (dict): The event dictionary containing information about the error.
-            hint (dict): A dictionary containing additional information about the error.
-
-        Returns:
-            dict: The modified event or None if the event should not be sent to Sentry.
-        """
-        if "exc_info" in hint:
-            exc_type, exc_value, _ = hint["exc_info"]
-            if exc_type in {KeyboardInterrupt, FileNotFoundError} or "out of memory" in str(exc_value):
-                return None  # do not send event
-
-        event["tags"] = {
-            "sys_argv": ARGV[0],
-            "sys_argv_name": Path(ARGV[0]).name,
-            "install": "git" if IS_GIT_DIR else "pip" if IS_PIP_PACKAGE else "other",
-            "os": ENVIRONMENT,
-        }
-        return event
-
-    sentry_sdk.init(
-        dsn="https://888e5a0778212e1d0314c37d4b9aae5d@o4504521589325824.ingest.us.sentry.io/4504521592406016",
-        debug=False,
-        auto_enabling_integrations=False,
-        traces_sample_rate=1.0,
-        release=__version__,
-        environment="runpod" if is_runpod() else "production",
-        before_send=before_send,
-        ignore_errors=[KeyboardInterrupt, FileNotFoundError],
-    )
-    sentry_sdk.set_user({"id": SETTINGS["uuid"]})  # SHA-256 anonymized UUID hash
+    # If sentry_sdk package is not installed then return and do not use Sentry
+    try:
+        import sentry_sdk  # noqa
+    except ImportError:
+        return
+
+    def before_send(event, hint):
+        """
+        Modify the event before sending it to Sentry based on specific exception types and messages.
+
+        Args:
+            event (dict): The event dictionary containing information about the error.
+            hint (dict): A dictionary containing additional information about the error.
+
+        Returns:
+            dict: The modified event or None if the event should not be sent to Sentry.
+        """
+        if "exc_info" in hint:
+            exc_type, exc_value, _ = hint["exc_info"]
+            if exc_type in {KeyboardInterrupt, FileNotFoundError} or "out of memory" in str(exc_value):
+                return None  # do not send event
+
+        event["tags"] = {
+            "sys_argv": ARGV[0],
+            "sys_argv_name": Path(ARGV[0]).name,
+            "install": "git" if IS_GIT_DIR else "pip" if IS_PIP_PACKAGE else "other",
+            "os": ENVIRONMENT,
+        }
+        return event
+
+    sentry_sdk.init(
+        dsn="https://888e5a0778212e1d0314c37d4b9aae5d@o4504521589325824.ingest.us.sentry.io/4504521592406016",
+        debug=False,
+        auto_enabling_integrations=False,
+        traces_sample_rate=1.0,
+        release=__version__,
+        environment="runpod" if is_runpod() else "production",
+        before_send=before_send,
+        ignore_errors=[KeyboardInterrupt, FileNotFoundError],
+    )
+    sentry_sdk.set_user({"id": SETTINGS["uuid"]})  # SHA-256 anonymized UUID hash
 
@@ -5854,17 +5856,17 @@

Issue a deprecation warning when a deprecated argument is used, suggesting an updated argument.

Source code in ultralytics/utils/__init__.py -
def deprecation_warn(arg, new_arg=None):
-    """Issue a deprecation warning when a deprecated argument is used, suggesting an updated argument."""
-    msg = f"WARNING ⚠️ '{arg}' is deprecated and will be removed in in the future."
-    if new_arg is not None:
-        msg += f" Use '{new_arg}' instead."
-    LOGGER.warning(msg)
+
def deprecation_warn(arg, new_arg=None):
+    """Issue a deprecation warning when a deprecated argument is used, suggesting an updated argument."""
+    msg = f"WARNING ⚠️ '{arg}' is deprecated and will be removed in in the future."
+    if new_arg is not None:
+        msg += f" Use '{new_arg}' instead."
+    LOGGER.warning(msg)
 
@@ -5879,13 +5881,13 @@

Strip auth from URL, i.e. https://url.com/file.txt?auth -> https://url.com/file.txt.

Source code in ultralytics/utils/__init__.py -
def clean_url(url):
-    """Strip auth from URL, i.e. https://url.com/file.txt?auth -> https://url.com/file.txt."""
-    url = Path(url).as_posix().replace(":/", "://")  # Pathlib turns :// -> :/, as_posix() for Windows
-    return unquote(url).split("?")[0]  # '%2F' to '/', split https://url.com/file.txt?auth
+
def clean_url(url):
+    """Strip auth from URL, i.e. https://url.com/file.txt?auth -> https://url.com/file.txt."""
+    url = Path(url).as_posix().replace(":/", "://")  # Pathlib turns :// -> :/, as_posix() for Windows
+    return unquote(url).split("?")[0]  # '%2F' to '/', split https://url.com/file.txt?auth
 
@@ -5900,11 +5902,11 @@

Convert URL to filename, i.e. https://url.com/file.txt?auth -> file.txt.

Source code in ultralytics/utils/__init__.py -
def url2file(url):
-    """Convert URL to filename, i.e. https://url.com/file.txt?auth -> file.txt."""
-    return Path(clean_url(url)).name
+
def url2file(url):
+    """Convert URL to filename, i.e. https://url.com/file.txt?auth -> file.txt."""
+    return Path(clean_url(url)).name
 
@@ -5919,19 +5921,19 @@

Display a message to install Ultralytics-Snippets for VS Code if not already installed.

Source code in ultralytics/utils/__init__.py -
def vscode_msg(ext="ultralytics.ultralytics-snippets") -> str:
-    """Display a message to install Ultralytics-Snippets for VS Code if not already installed."""
-    path = (USER_CONFIG_DIR.parents[2] if WINDOWS else USER_CONFIG_DIR.parents[1]) / ".vscode/extensions"
-    obs_file = path / ".obsolete"  # file tracks uninstalled extensions, while source directory remains
-    installed = any(path.glob(f"{ext}*")) and ext not in (obs_file.read_text("utf-8") if obs_file.exists() else "")
-    url = "https://docs.ultralytics.com/integrations/vscode"
-    return "" if installed else f"{colorstr('VS Code:')} view Ultralytics VS Code Extension ⚡ at {url}"
+
def vscode_msg(ext="ultralytics.ultralytics-snippets") -> str:
+    """Display a message to install Ultralytics-Snippets for VS Code if not already installed."""
+    path = (USER_CONFIG_DIR.parents[2] if WINDOWS else USER_CONFIG_DIR.parents[1]) / ".vscode/extensions"
+    obs_file = path / ".obsolete"  # file tracks uninstalled extensions, while source directory remains
+    installed = any(path.glob(f"{ext}*")) and ext not in (obs_file.read_text("utf-8") if obs_file.exists() else "")
+    url = "https://docs.ultralytics.com/integrations/vscode"
+    return "" if installed else f"{colorstr('VS Code:')} view Ultralytics VS Code Extension ⚡ at {url}"
 
@@ -5942,7 +5944,7 @@

📅 Created 1 year ago -✏️ Updated 3 days ago +✏️ Updated 4 days ago
diff --git a/reference/utils/checks/index.html b/reference/utils/checks/index.html index 6527d057d6..a3977a4e87 100644 --- a/reference/utils/checks/index.html +++ b/reference/utils/checks/index.html @@ -4140,7 +4140,7 @@

📅 Created 1 year ago -✏️ Updated 2 days ago +✏️ Updated 3 days ago

diff --git a/reference/utils/metrics/index.html b/reference/utils/metrics/index.html index 250cdf4e2e..f3a3a79611 100644 --- a/reference/utils/metrics/index.html +++ b/reference/utils/metrics/index.html @@ -7840,7 +7840,7 @@

📅 Created 1 year ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/sitemap.xml b/sitemap.xml index 8dc44e34c4..b64eaee3a5 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -2,1418 +2,1418 @@ https://docs.ultralytics.com/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/caltech101/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/caltech256/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/cifar10/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/cifar100/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/fashion-mnist/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/imagenet/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/imagenet10/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/imagenette/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/imagewoof/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/classify/mnist/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/african-wildlife/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/argoverse/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/brain-tumor/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/coco/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/coco8/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/globalwheat2020/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/lvis/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/medical-pills/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/objects365/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/open-images-v7/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/roboflow-100/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/signature/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/sku-110k/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/visdrone/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/voc/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/detect/xview/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/explorer/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/explorer/api/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/explorer/dashboard/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/explorer/explorer/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/obb/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/obb/dota-v2/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/obb/dota8/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/pose/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/pose/coco/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/pose/coco8-pose/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/pose/dog-pose/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/pose/hand-keypoints/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/pose/tiger-pose/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/segment/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/segment/carparts-seg/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/segment/coco/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/segment/coco8-seg/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/segment/crack-seg/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/segment/package-seg/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/datasets/track/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/analytics/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/azureml-quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/conda-quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/coral-edge-tpu-on-raspberry-pi/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/data-collection-and-annotation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/deepstream-nvidia-jetson/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/defining-project-goals/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/distance-calculation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/docker-quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/heatmaps/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/hyperparameter-tuning/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/instance-segmentation-and-tracking/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/isolating-segmentation-objects/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/kfold-cross-validation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/model-deployment-options/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/model-deployment-practices/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/model-evaluation-insights/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/model-monitoring-and-maintenance/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/model-testing/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/model-training-tips/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/nvidia-jetson/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/object-blurring/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/object-counting/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/object-cropping/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/optimizing-openvino-latency-vs-throughput-modes/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/parking-management/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/preprocessing_annotated_data/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/queue-management/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/raspberry-pi/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/region-counting/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/ros-quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/sahi-tiled-inference/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/security-alarm-system/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/speed-estimation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/steps-of-a-cv-project/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/streamlit-live-inference/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/trackzone/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/triton-inference-server/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/view-results-in-terminal/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/vision-eye/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/workouts-monitoring/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/yolo-common-issues/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/yolo-performance-metrics/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/guides/yolo-thread-safe-inference/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/CI/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/CLA/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/FAQ/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/code-of-conduct/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/contributing/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/environmental-health-safety/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/minimum-reproducible-example/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/privacy/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/help/security/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/cloud-training/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/datasets/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/inference-api/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/integrations/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/models/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/pro/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/projects/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/teams/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/api/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/app/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/app/android/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/app/ios/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/dataset/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/project/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/quickstart/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/hub_client/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/base/api_client/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/base/auth/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/base/crud_client/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/base/paginated_list/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/base/server_clients/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/helpers/error_handler/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/helpers/exceptions/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/helpers/logger/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/helpers/utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/modules/datasets/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/modules/models/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/modules/projects/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/modules/teams/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/hub/sdk/reference/modules/users/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/albumentations/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/amazon-sagemaker/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/clearml/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/comet/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/coreml/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/dvc/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/edge-tpu/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/google-colab/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/gradio/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/ibm-watsonx/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/jupyterlab/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/kaggle/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/mlflow/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/mnn/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/ncnn/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/neural-magic/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/onnx/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/openvino/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/paddlepaddle/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/paperspace/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/ray-tune/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/roboflow/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/rockchip-rknn/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/seeedstudio-recamera/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/sony-imx500/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/tensorboard/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/tensorrt/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/tf-graphdef/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/tf-savedmodel/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/tfjs/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/tflite/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/torchscript/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/vscode/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/integrations/weights-biases/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/fast-sam/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/mobile-sam/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/rtdetr/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/sam-2/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/sam/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolo-nas/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolo-world/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolo11/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov10/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov3/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov4/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov5/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov6/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov7/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov8/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/models/yolov9/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/benchmark/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/export/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/track/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/modes/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/cfg/__init__/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/annotator/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/augment/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/base/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/build/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/converter/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/dataset/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/loaders/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/split_dota/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/data/utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/exporter/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/predictor/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/results/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/trainer/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/tuner/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/engine/validator/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/hub/__init__/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/hub/auth/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/hub/session/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/hub/utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/hub/google/__init__/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/fastsam/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/fastsam/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/fastsam/utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/fastsam/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/nas/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/nas/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/nas/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/rtdetr/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/rtdetr/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/rtdetr/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/rtdetr/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/amg/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/build/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/blocks/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/decoders/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/encoders/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/memory_attention/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/sam/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/tiny_encoder/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/transformer/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/sam/modules/utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/utils/loss/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/utils/ops/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/model/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/classify/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/classify/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/classify/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/detect/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/detect/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/detect/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/obb/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/obb/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/obb/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/pose/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/pose/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/pose/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/segment/predict/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/segment/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/segment/val/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/world/train/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/models/yolo/world/train_world/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/autobackend/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/tasks/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/modules/activation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/modules/block/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/modules/conv/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/modules/head/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/modules/transformer/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/nn/modules/utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/ai_gym/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/analytics/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/distance_calculation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/heatmap/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/object_counter/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/parking_management/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/queue_management/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/region_counter/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/security_alarm/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/solutions/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/speed_estimation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/streamlit_inference/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/solutions/trackzone/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/basetrack/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/bot_sort/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/byte_tracker/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/track/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/utils/gmc/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/utils/kalman_filter/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/trackers/utils/matching/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/__init__/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/autobatch/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/benchmarks/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/checks/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/dist/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/downloads/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/errors/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/files/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/instance/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/loss/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/metrics/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/ops/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/patches/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/plotting/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/tal/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/torch_utils/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/triton/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/tuner/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/base/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/clearml/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/comet/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/dvc/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/hub/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/mlflow/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/neptune/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/raytune/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/tensorboard/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/reference/utils/callbacks/wb/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/solutions/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/tasks/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/tasks/classify/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/tasks/detect/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/tasks/obb/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/tasks/pose/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/tasks/segment/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/usage/callbacks/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/usage/cfg/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/usage/cli/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/usage/engine/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/usage/python/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/usage/simple-utilities/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/quickstart_tutorial/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/environments/aws_quickstart_tutorial/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/environments/azureml_quickstart_tutorial/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/environments/docker_image_quickstart_tutorial/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/environments/google_cloud_quickstart_tutorial/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/architecture_description/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/clearml_logging_integration/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/comet_logging_integration/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/hyperparameter_evolution/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/model_ensembling/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/model_export/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/model_pruning_and_sparsity/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/multi_gpu_training/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/neural_magic_pruning_quantization/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/pytorch_hub_model_loading/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/roboflow_datasets_integration/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/test_time_augmentation/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/tips_for_best_training_results/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/train_custom_data/ - 2025-01-23 + 2025-01-24 https://docs.ultralytics.com/yolov5/tutorials/transfer_learning_with_frozen_layers/ - 2025-01-23 + 2025-01-24 \ No newline at end of file diff --git a/tasks/obb/index.html b/tasks/obb/index.html index 26512af895..65e4775a96 100644 --- a/tasks/obb/index.html +++ b/tasks/obb/index.html @@ -1140,7 +1140,7 @@

How do I validate 📅 Created 1 year ago -✏️ Updated 2 months ago +✏️ Updated 3 months ago

diff --git a/tasks/segment/index.html b/tasks/segment/index.html index 494a538385..c610be1f93 100644 --- a/tasks/segment/index.html +++ b/tasks/segment/index.html @@ -1108,7 +1108,7 @@

How can I exp 📅 Created 1 year ago -✏️ Updated 1 month ago +✏️ Updated 2 months ago

diff --git a/usage/simple-utilities/index.html b/usage/simple-utilities/index.html index cba1820629..ae02541841 100644 --- a/usage/simple-utilities/index.html +++ b/usage/simple-utilities/index.html @@ -1852,7 +1852,7 @@

How can I c 📅 Created 11 months ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago

diff --git a/yolov5/tutorials/comet_logging_integration/index.html b/yolov5/tutorials/comet_logging_integration/index.html index 82888ce6f8..8bfb04df44 100644 --- a/yolov5/tutorials/comet_logging_integration/index.html +++ b/yolov5/tutorials/comet_logging_integration/index.html @@ -1310,7 +1310,7 @@

Visualizing Results

📅 Created 1 year ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago
diff --git a/yolov5/tutorials/tips_for_best_training_results/index.html b/yolov5/tutorials/tips_for_best_training_results/index.html index ce0bf02a53..a5fefe30e4 100644 --- a/yolov5/tutorials/tips_for_best_training_results/index.html +++ b/yolov5/tutorials/tips_for_best_training_results/index.html @@ -913,7 +913,7 @@

Further Reading

📅 Created 1 year ago -✏️ Updated 20 days ago +✏️ Updated 21 days ago