Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix HUB session with DDP training #13103

Merged
merged 77 commits into from
Jun 23, 2024
Merged

Fix HUB session with DDP training #13103

merged 77 commits into from
Jun 23, 2024

Conversation

Laughing-q
Copy link
Member

@Laughing-q Laughing-q commented May 24, 2024

🛠️ PR Summary

Made with ❤️ by Ultralytics Actions

🌟 Summary

Improved distributed training and HUB session handling in the Ultralytics training workflow. 🛠️

📊 Key Changes

  • Added Distributed Training Synchronization: Introduced the torch_distributed_zero_first decorator to ensure all distributed processes wait for the main process to complete certain tasks.
  • Enhanced Model Loading: Incorporated the usage of torch_distributed_zero_first to prevent multiple auto-downloads of the dataset in distributed settings.
  • Initialized HUB Sessions: Added HUB session initialization in the trainer.
  • Adjusted HUB Authentication: Refined HUB model URL checking to ensure correct handling of non-HUB model URLs.

🎯 Purpose & Impact

  • Efficiency in Distributed Training: Prevents redundant downloads, saving time and resources in distributed environments. 🌐
  • Stable Integrations: Ensures HUB sessions are properly authenticated and initialized, enhancing the reliability of model training logs. 🔒
  • Developer Experience: Simplifies the process for developers working in distributed training scenarios, making it more user-friendly and robust. 🧑‍💻

Copy link

codecov bot commented May 24, 2024

Codecov Report

Attention: Patch coverage is 33.33333% with 4 lines in your changes missing coverage. Please review.

Project coverage is 35.53%. Comparing base (6872028) to head (9719119).
Report is 1 commits behind head on main.

Current head 9719119 differs from pull request most recent head 1cfcced

Please upload reports for the commit 1cfcced to get more accurate results.

Files Patch % Lines
ultralytics/engine/trainer.py 0.00% 3 Missing ⚠️
ultralytics/hub/session.py 0.00% 1 Missing ⚠️

❗ There is a different number of reports uploaded between BASE (6872028) and HEAD (9719119). Click for more details.

HEAD has 1 upload less than BASE | Flag | BASE (6872028) | HEAD (9719119) | |------|------|------| |Benchmarks|2|1|
Additional details and impacted files
@@             Coverage Diff             @@
##             main   #13103       +/-   ##
===========================================
- Coverage   70.40%   35.53%   -34.88%     
===========================================
  Files         124      124               
  Lines       15905    15886       -19     
===========================================
- Hits        11198     5645     -5553     
- Misses       4707    10241     +5534     
Flag Coverage Δ
Benchmarks 35.53% <33.33%> (-0.26%) ⬇️
GPU ?
Tests ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Laughing-q
Copy link
Member Author

Laughing-q commented May 24, 2024

@glenn-jocher I'm not really familiar with the whole workflow between hub and ultralytics but I figured we can directly load model from hub so I had to keep some code of hub-session in model.py, in case not to break anything.

if self.is_hub_model(model):
# Fetch model from HUB
checks.check_requirements("hub-sdk>=0.0.6")
self.session = self._get_hub_session(model)
model = self.session.model_file

https://github.com/ultralytics/ultralytics/blob/654c37f09bc3b1e9d182a6f4ea315616bf14c643/ultralytics/engine/model.py#L180-185

@Laughing-q
Copy link
Member Author

@glenn-jocher Also I tested in my local multi-gpu machine and it seems to work properly i.e it's trying to create hub-session in ddp training. That's so far I'm able to test since I don't have any hub env and account(I'm guessing it's same as wandb, which needs an account).
Waiting for @Burhan-Q to have some more tests. :)

@glenn-jocher
Copy link
Member

Got it, thanks @Laughing-q! @Burhan-Q can you test this PR for DDP training from HUB and then also from Ultralytics to HUB?

@Burhan-Q
Copy link
Member

@glenn-jocher @Laughing-q @sergiuwaxmann this worked with a model created from HUB

Here's the post training print out of training arguments.

model.session.train_args
>>> {
    'batch': -1, 
    'cache': 'ram', 
    'data': 'coco128.yaml', 
    'device': [0, 1],  # DDP enabled
    'epochs': 10, 
    'imgsz': 640, 
    'patience': 50, 
    'time': None
}
HUB DDP training report

image

Local log

from ultralytics import YOLO, hub

hub.login(API_KEY)
>>> Ultralytics HUB: New authentication successful>>> True

model = YOLO('https://hub.ultralytics.com/models/oljNmlCqCllzTUL5Jwwj')
results = model.train()

Ultralytics YOLOv8.2.20 🚀 Python-3.10.12 torch-2.2.0+cu121 CUDA:0 (NVIDIA A100-SXM4-80GB, 81051MiB)
                                                            CUDA:1 (NVIDIA A100-SXM4-80GB, 81051MiB)
engine/trainer: task=detect, mode=train, model=yolov8s.pt, data=coco128.yaml, epochs=10, time=None, patience=50, batch=-1, imgsz=640, save=True, save_period=-1, cache=ram, device=[0, 1], workers=8, project=None, name=train, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, freeze=None, multi_scale=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, vid_stride=1, stream_buffer=False, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, embed=None, show=False, save_frames=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, show_boxes=True, line_width=None, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, bgr=0.0, mosaic=1.0, mixup=0.0, copy_paste=0.0, auto_augment=randaugment, erasing=0.4, crop_fraction=1.0, cfg=None, tracker=botsort.yaml, save_dir=ultralytics/runs/detect/train

                   from  n    params  module                                       arguments                     
  0                  -1  1       928  ultralytics.nn.modules.conv.Conv             [3, 32, 3, 2]                 
  1                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]                
  2                  -1  1     29056  ultralytics.nn.modules.block.C2f             [64, 64, 1, True]             
  3                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]               
  4                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]           
  5                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]              
  6                  -1  2    788480  ultralytics.nn.modules.block.C2f             [256, 256, 2, True]           
  7                  -1  1   1180672  ultralytics.nn.modules.conv.Conv             [256, 512, 3, 2]              
  8                  -1  1   1838080  ultralytics.nn.modules.block.C2f             [512, 512, 1, True]           
  9                  -1  1    656896  ultralytics.nn.modules.block.SPPF            [512, 512, 5]                 
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 12                  -1  1    591360  ultralytics.nn.modules.block.C2f             [768, 256, 1]                 
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 15                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]                 
 16                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 18                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]                 
 19                  -1  1    590336  ultralytics.nn.modules.conv.Conv             [256, 256, 3, 2]              
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 21                  -1  1   1969152  ultralytics.nn.modules.block.C2f             [768, 512, 1]                 
 22        [15, 18, 21]  1   2147008  ultralytics.nn.modules.head.Detect           [80, [128, 256, 512]]         
Model summary: 225 layers, 11166560 parameters, 11166544 gradients, 28.8 GFLOPs

Transferred 355/355 items from pretrained weights

WARNING ⚠️ 'batch=-1' for AutoBatch is incompatible with Multi-GPU training, setting default 'batch=16'

DDP: debug command /home/burhan/ultra_repo/.ultra/bin/python -m torch.distributed.run --nproc_per_node 2 --master_port 54685 /home/burhan/.config/Ultralytics/DDP/_temp_o135mjif139927424095984.py

WARNING:__main__:
*****************************************
Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. 
*****************************************

Ultralytics YOLOv8.2.20 🚀 Python-3.10.12 torch-2.2.0+cu121 CUDA:0 (NVIDIA A100-SXM4-80GB, 81051MiB)
                                                            CUDA:1 (NVIDIA A100-SXM4-80GB, 81051MiB)

Ultralytics HUB: View model at https://hub.ultralytics.com/models/bqwlsS8e96a9fzpRATuW 🚀
Transferred 355/355 items from pretrained weights
Freezing layer 'model.22.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
AMP: checks passedtrain: Scanning /home/shared/datasets/coco128/labels/train2017.cache... 126 images, 2 backgrounds, 0 corrupt: 100%|██████████| 128/128 [00:00<?, ?it/s]
train: Caching images (0.1GB RAM): 100%|██████████| 128/128 [00:00<00:00, 1948.18it/s]
val: Scanning /home/shared/datasets/coco128/labels/train2017.cache... 126 images, 2 backgrounds, 0 corrupt: 100%|██████████| 128/128 [00:00<?, ?it/s]
val: Caching images (0.1GB RAM): 100%|██████████| 128/128 [00:00<00:00, 984.03it/s]
Plotting labels to ultralytics/runs/detect/train/labels.jpg... 
optimizer: 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... 
optimizer: AdamW(lr=0.000714, momentum=0.9) with parameter groups 57 weight(decay=0.0), 64 weight(decay=0.0005), 63 bias(decay=0.0)

Image sizes 640 train, 640 val
Using 16 dataloader workers

Logging results to ultralytics/runs/detect/train

Starting training for 10 epochs...
Closing dataloader mosaic

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       1/10      2.37G      1.215      1.451      1.245         42        640: 100%|██████████| 8/8 [00:02<00:00,  3.45it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:01<00:00,  6.85it/s]
                   all        128        929      0.757      0.684       0.76      0.588

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       2/10      2.43G       1.21      1.482      1.245         48        640: 100%|██████████| 8/8 [00:00<00:00,  8.90it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.82it/s]
                   all        128        929      0.748      0.665      0.764       0.58

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       3/10      2.44G      1.122      1.112      1.147         48        640: 100%|██████████| 8/8 [00:00<00:00,  9.47it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.54it/s]
                   all        128        929      0.711      0.692      0.777      0.591

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       4/10      2.44G     0.9762     0.9867      1.098         62        640: 100%|██████████| 8/8 [00:00<00:00,  9.60it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.94it/s]
                   all        128        929      0.771       0.71      0.797      0.623

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       5/10      2.49G     0.9425     0.9654      1.071         68        640: 100%|██████████| 8/8 [00:00<00:00,  9.25it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 16.00it/s]
                   all        128        929      0.762      0.734      0.802      0.621

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       6/10      2.44G      1.026      0.899      1.084         31        640: 100%|██████████| 8/8 [00:00<00:00,  9.77it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.68it/s]
                   all        128        929      0.826      0.733      0.809      0.629

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       7/10      2.48G     0.8806     0.8252      1.058         45        640: 100%|██████████| 8/8 [00:00<00:00,  9.26it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.98it/s]
                   all        128        929      0.799      0.768      0.818      0.638

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       8/10      2.47G     0.8754      0.818      1.025         49        640: 100%|██████████| 8/8 [00:00<00:00,  9.14it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.87it/s]
                   all        128        929      0.844      0.722      0.827      0.649

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       9/10      2.49G     0.9863     0.8815      1.152         36        640: 100%|██████████| 8/8 [00:00<00:00,  9.62it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.99it/s]
                   all        128        929      0.883       0.72      0.836      0.663

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      10/10      2.45G       0.98     0.8182      1.072         39        640: 100%|██████████| 8/8 [00:00<00:00, 10.12it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:00<00:00, 15.65it/s]
                   all        128        929      0.867      0.736      0.841      0.666

10 epochs completed in 0.006 hours.
Optimizer stripped from ultralytics/runs/detect/train/weights/last.pt, 22.6MB
Optimizer stripped from ultralytics/runs/detect/train/weights/best.pt, 22.6MB

Validating ultralytics/runs/detect/train/weights/best.pt...
Ultralytics YOLOv8.2.20 🚀 Python-3.10.12 torch-2.2.0+cu121 CUDA:0 (NVIDIA A100-SXM4-80GB, 81051MiB)
                                                            CUDA:1 (NVIDIA A100-SXM4-80GB, 81051MiB)
Model summary (fused): 168 layers, 11156544 parameters, 0 gradients, 28.6 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 8/8 [00:02<00:00,  3.27it/s]
                   all        128        929      0.869      0.738      0.841      0.666
                person        128        254      0.964      0.632      0.853      0.652
               bicycle        128          6      0.801      0.333      0.537      0.312
                   car        128         46          1      0.306      0.591      0.311
            motorcycle        128          5      0.917          1      0.995       0.89
              airplane        128          6      0.964          1      0.995      0.907
                   bus        128          7          1      0.791      0.995      0.883
                 train        128          3      0.962          1      0.995      0.808
                 truck        128         12      0.961        0.5       0.69      0.434
                  boat        128          6      0.878      0.667      0.791      0.522
         traffic light        128         14          1      0.249      0.356      0.285
             stop sign        128          2      0.898          1      0.995      0.848
                 bench        128          9          1      0.733      0.833      0.603
                  bird        128         16          1      0.881      0.995      0.707
                   cat        128          4      0.926          1      0.995      0.891
                   dog        128          9      0.891      0.908      0.984      0.819
                 horse        128          2      0.896          1      0.995       0.75
              elephant        128         17          1      0.923      0.955      0.795
                  bear        128          1      0.695          1      0.995      0.895
                 zebra        128          4      0.936          1      0.995      0.959
               giraffe        128          9          1      0.956      0.995       0.85
              backpack        128          6          1      0.703      0.837      0.594
              umbrella        128         18      0.821      0.889       0.95      0.704
               handbag        128         19      0.821      0.421      0.598       0.44
                   tie        128          7          1      0.802      0.858      0.618
              suitcase        128          4          1      0.813      0.995      0.616
               frisbee        128          5       0.89        0.8      0.804      0.684
                  skis        128          1      0.781          1      0.995      0.796
             snowboard        128          7      0.569      0.714      0.763      0.579
           sports ball        128          6          1      0.554       0.67      0.442
                  kite        128         10       0.89        0.3      0.583      0.296
          baseball bat        128          4      0.668       0.25      0.565       0.43
        baseball glove        128          7      0.935      0.429      0.439        0.3
            skateboard        128          5      0.623          1      0.938       0.59
         tennis racket        128          7      0.745      0.571      0.607      0.401
                bottle        128         18          1      0.353      0.752      0.499
            wine glass        128         16          1      0.485      0.703      0.501
                   cup        128         36      0.849      0.806      0.857       0.58
                  fork        128          6      0.802      0.333      0.644      0.478
                 knife        128         16      0.856      0.625       0.79      0.584
                 spoon        128         22        0.9      0.411      0.636      0.484
                  bowl        128         28        0.9      0.821      0.872      0.707
                banana        128          1      0.732          1      0.995      0.995
              sandwich        128          2      0.863          1      0.995      0.995
                orange        128          4      0.556       0.75      0.702      0.524
              broccoli        128         11      0.616      0.295      0.558      0.382
                carrot        128         24      0.838      0.647      0.874      0.647
               hot dog        128          2      0.876          1      0.995      0.995
                 pizza        128          5      0.967          1      0.995      0.904
                 donut        128         14      0.695          1      0.936      0.862
                  cake        128          4      0.944          1      0.995      0.905
                 chair        128         35      0.765      0.559      0.742      0.545
                 couch        128          6      0.816      0.749      0.852      0.708
          potted plant        128         14      0.873      0.929      0.955      0.781
                   bed        128          3      0.908          1      0.995       0.94
          dining table        128         13          1      0.757      0.854      0.738
                toilet        128          2      0.965          1      0.995      0.896
                    tv        128          2      0.898          1      0.995      0.799
                laptop        128          3      0.932          1      0.995      0.907
                 mouse        128          2      0.588        0.5      0.545      0.413
                remote        128          8          1      0.638      0.861      0.662
            cell phone        128          8          1      0.542       0.63      0.442
             microwave        128          3       0.74          1      0.995      0.952
                  oven        128          5       0.76        0.6      0.665      0.479
                  sink        128          6      0.901        0.5      0.783      0.658
          refrigerator        128          5      0.935          1      0.995        0.8
                  book        128         29      0.708      0.241      0.625      0.418
                 clock        128          9       0.89        0.9      0.973      0.818
                  vase        128          2      0.631          1      0.995      0.995
              scissors        128          1          1          0      0.995      0.219
            teddy bear        128         21      0.838       0.81      0.862      0.625
            toothbrush        128          5      0.734          1      0.995      0.836

Speed: 0.1ms preprocess, 3.3ms inference, 0.0ms loss, 3.1ms postprocess per image
Results saved to ultralytics/runs/detect/train

Ultralytics HUB: Syncing final model...
100%|██████████| 21.5M/21.5M [00:01<00:00, 12.3MB/s]
Ultralytics HUB: DoneUltralytics HUB: View model at https://hub.ultralytics.com/models/bqwlsS8e96a9fzpRATuW 🚀

@Burhan-Q Burhan-Q added bug Something isn't working HUB Ultralytics HUB issues labels May 24, 2024
@Burhan-Q
Copy link
Member

Note

This PR is related to ultralytics/hub#695 and ultralytics/hub#606

@Burhan-Q
Copy link
Member

Burhan-Q commented May 24, 2024

I attempted launching a local training while logged into my HUB account (both with and without DDP), but the HUB logging doesn't appear to work for either case on this branch.

from ultralytics import YOLO, hub

hub.login(API_KEY)
>>> Ultralytics HUB: New authentication successful>>> True

model = YOLO("yolov8s-pose.pt")
results = model.train(data="coco8-pose.yaml", epochs=10, device=6)

No model was uploaded after training completes

@Laughing-q
Copy link
Member Author

Laughing-q commented May 24, 2024

I attempted launching a local training while logged into my HUB account (both with and without DDP), but the HUB logging doesn't appear to work for either case on this branch.

from ultralytics import YOLO, hub

hub.login(API_KEY)
>>> Ultralytics HUB: New authentication successful>>> True

model = YOLO("yolov8s-pose.pt")
results = model.train(data="coco8-pose.yaml", epochs=10, device=6)

No model was uploaded after training completes

does this work properly with single-gpu mode on main branch?

@Burhan-Q
Copy link
Member

@Laughing-q yes it does work when I switch to main

@Laughing-q
Copy link
Member Author

@Burhan-Q that's strange...for me the training goes to the step of creating hub instance.
pic-240524-2118-56
again that's so far I'm able to debug.
@Burhan-Q I'm wondering perhaps you could add some printing here in the function to check if self.hub_session is created successfully?

@Laughing-q
Copy link
Member Author

oh I was supposed to post this one
NmrBul4E4J

@Burhan-Q
Copy link
Member

I tested out a modification to the trainer._setup_hub() method that gave me some interesting results

        if SETTINGS["hub"] and self.hub_session is None:
            # Create a model in HUB
            try:
                from ultralytics.hub.session import HUBTrainingSession

                session = HUBTrainingSession(self.args.model)
                self.hub_session = session if session.client.authenticated else self.hub_session
                if self.hub_session:
                    self.hub_session.create_model(self.args)
                    # Check model was created
                    if not self.hub_session.model:
                        self.hub_session = None
            except (PermissionError, ModuleNotFoundError):
                # Ignore PermissionError and ModuleNotFoundError which indicates hub-sdk not installed
                pass

With these changes, I suddenly get lots of these in the training log

hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
Train log

from ultralytics import YOLO, hub

hub.login(API_KEY)
>>> Ultralytics HUB: New authentication successful>>> True

model = YOLO("yolov8s-seg.pt")
result = model.train(data="coco8-seg.yaml", epochs=10, device=3)

Ultralytics YOLOv8.2.20 🚀 Python-3.10.12 torch-2.2.0+cu121 CUDA:3 (NVIDIA A100-SXM4-80GB, 81051MiB)
engine/trainer: task=segment, mode=train, model=yolov8s-seg.pt, data=coco8-seg.yaml, epochs=10, time=None, patience=100, batch=16, imgsz=640, save=True, save_period=-1, cache=False, device=3, workers=8, project=None, name=train6, exist_ok=False, pretrained=True, optimizer=auto, verbose=True, seed=0, deterministic=True, single_cls=False, rect=False, cos_lr=False, close_mosaic=10, resume=False, amp=True, fraction=1.0, profile=False, freeze=None, multi_scale=False, overlap_mask=True, mask_ratio=4, dropout=0.0, val=True, split=val, save_json=False, save_hybrid=False, conf=None, iou=0.7, max_det=300, half=False, dnn=False, plots=True, source=None, vid_stride=1, stream_buffer=False, visualize=False, augment=False, agnostic_nms=False, classes=None, retina_masks=False, embed=None, show=False, save_frames=False, save_txt=False, save_conf=False, save_crop=False, show_labels=True, show_conf=True, show_boxes=True, line_width=None, format=torchscript, keras=False, optimize=False, int8=False, dynamic=False, simplify=False, opset=None, workspace=4, nms=False, lr0=0.01, lrf=0.01, momentum=0.937, weight_decay=0.0005, warmup_epochs=3.0, warmup_momentum=0.8, warmup_bias_lr=0.1, box=7.5, cls=0.5, dfl=1.5, pose=12.0, kobj=1.0, label_smoothing=0.0, nbs=64, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, degrees=0.0, translate=0.1, scale=0.5, shear=0.0, perspective=0.0, flipud=0.0, fliplr=0.5, bgr=0.0, mosaic=1.0, mixup=0.0, copy_paste=0.0, auto_augment=randaugment, erasing=0.4, crop_fraction=1.0, cfg=None, tracker=botsort.yaml, save_dir=/home/burhan/tests/ultralytics/runs/segment/train6

                   from  n    params  module                                       arguments                     
  0                  -1  1       928  ultralytics.nn.modules.conv.Conv             [3, 32, 3, 2]                 
  1                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]                
  2                  -1  1     29056  ultralytics.nn.modules.block.C2f             [64, 64, 1, True]             
  3                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]               
  4                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]           
  5                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]              
  6                  -1  2    788480  ultralytics.nn.modules.block.C2f             [256, 256, 2, True]           
  7                  -1  1   1180672  ultralytics.nn.modules.conv.Conv             [256, 512, 3, 2]              
  8                  -1  1   1838080  ultralytics.nn.modules.block.C2f             [512, 512, 1, True]           
  9                  -1  1    656896  ultralytics.nn.modules.block.SPPF            [512, 512, 5]                 
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 12                  -1  1    591360  ultralytics.nn.modules.block.C2f             [768, 256, 1]                 
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 15                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]                 
 16                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 18                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]                 
 19                  -1  1    590336  ultralytics.nn.modules.conv.Conv             [256, 256, 3, 2]              
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 21                  -1  1   1969152  ultralytics.nn.modules.block.C2f             [768, 512, 1]                 
 22        [15, 18, 21]  1   2801504  ultralytics.nn.modules.head.Segment          [80, 32, 128, [128, 256, 512]]
YOLOv8s-seg summary: 261 layers, 11821056 parameters, 11821040 gradients, 42.9 GFLOPs

Transferred 417/417 items from pretrained weights
2024-05-24 09:13:41,106 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
2024-05-24 09:13:41,109 - hub_sdk.helpers.logger - ERROR - Received no response from the server while creating the model.
Freezing layer 'model.22.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks with YOLOv8n...
AMP: checks passedtrain: Scanning /home/shared/datasets/coco8-seg/labels/train.cache... 4 images, 0 backgrounds, 0 corrupt: 100%|██████████| 4/4 [00:00<?, ?it/s]
val: Scanning /home/shared/datasets/coco8-seg/labels/val.cache... 4 images, 0 backgrounds, 0 corrupt: 100%|██████████| 4/4 [00:00<?, ?it/s]
Plotting labels to /home/burhan/tests/ultralytics/runs/segment/train6/labels.jpg... 
optimizer: 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... 
optimizer: AdamW(lr=0.000119, momentum=0.9) with parameter groups 66 weight(decay=0.0), 77 weight(decay=0.0005), 76 bias(decay=0.0)
Image sizes 640 train, 640 val
Using 8 dataloader workers
Logging results to /home/burhan/tests/ultralytics/runs/segment/train6
Starting training for 10 epochs...
Closing dataloader mosaic

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       1/10      1.52G     0.9476      2.702      1.978      1.283         13        640: 100%|██████████| 1/1 [00:00<00:00,  1.31it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00,  4.19it/s]
                   all          4         17      0.822      0.898       0.94      0.679      0.822      0.898      0.939      0.592

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       2/10      1.54G     0.9262      2.695      2.596      1.247         13        640: 100%|██████████| 1/1 [00:00<00:00,  9.71it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 14.64it/s]
                   all          4         17      0.832      0.905      0.941       0.68      0.832      0.905      0.941        0.6

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       3/10      1.57G     0.8526      2.626      2.046      1.234         13        640: 100%|██████████| 1/1 [00:00<00:00,  8.52it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 17.86it/s]
                   all          4         17      0.838      0.913      0.942       0.68      0.838      0.913      0.935      0.599

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       4/10      1.57G      1.143      3.088       2.44      1.395         13        640: 100%|██████████| 1/1 [00:00<00:00,  8.65it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 23.26it/s]
                   all          4         17      0.834      0.913       0.94      0.672      0.834      0.913      0.939      0.601

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       5/10      1.55G      1.009      2.831       2.98      1.271         13        640: 100%|██████████| 1/1 [00:00<00:00,  3.74it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95):   0%|          | 0/1 [00:00<?, ?it/s]2024-05-24 09:13:50,859 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 17.41it/s]
                   all          4         17      0.836      0.912      0.941      0.683      0.836      0.912      0.932      0.599

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       6/10      1.59G      1.268      3.083       2.17      1.654         13        640: 100%|██████████| 1/1 [00:00<00:00,  5.34it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 22.36it/s]
                   all          4         17      0.844      0.912      0.942      0.684      0.844      0.912      0.934      0.599

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       7/10      1.67G     0.7353      2.692      1.904      1.155         13        640: 100%|██████████| 1/1 [00:00<00:00,  9.19it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 22.59it/s]
                   all          4         17      0.889      0.911      0.942      0.684      0.889      0.911      0.934      0.602

2024-05-24 09:13:52,195 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       8/10      1.67G      1.062      2.927      2.253      1.209         13        640: 100%|██████████| 1/1 [00:00<00:00,  7.85it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 22.27it/s]
                   all          4         17      0.846      0.913      0.942      0.674      0.846      0.913      0.934      0.587

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
       9/10      1.65G      1.024      2.655        2.2       1.32         13        640: 100%|██████████| 1/1 [00:00<00:00,  7.58it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 23.05it/s]
                   all          4         17      0.873      0.915      0.942      0.675      0.873      0.915      0.934      0.587

      Epoch    GPU_mem   box_loss   seg_loss   cls_loss   dfl_loss  Instances       Size
      10/10      1.65G     0.6717      1.964      1.453      1.056         13        640: 100%|██████████| 1/1 [00:00<00:00,  7.38it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 22.08it/s]
                   all          4         17      0.863      0.925      0.942      0.687      0.863      0.925      0.934      0.603

2024-05-24 09:13:54,152 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.

10 epochs completed in 0.002 hours.
2024-05-24 09:13:54,537 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
Optimizer stripped from /home/burhan/tests/ultralytics/runs/segment/train6/weights/last.pt, 23.9MB
Optimizer stripped from /home/burhan/tests/ultralytics/runs/segment/train6/weights/best.pt, 23.9MB

Validating /home/burhan/tests/ultralytics/runs/segment/train6/weights/best.pt...
Ultralytics YOLOv8.2.20 🚀 Python-3.10.12 torch-2.2.0+cu121 CUDA:3 (NVIDIA A100-SXM4-80GB, 81051MiB)
YOLOv8s-seg summary (fused): 195 layers, 11810560 parameters, 0 gradients, 42.6 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95)     Mask(P          R      mAP50  mAP50-95): 100%|██████████| 1/1 [00:00<00:00, 26.21it/s]
2024-05-24 09:13:55,403 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
                   all          4         17      0.863      0.924      0.942      0.671      0.863      0.924      0.934      0.587
                person          4         10      0.844      0.547      0.678      0.339      0.844      0.547      0.629      0.308
                   dog          4          1      0.737          1      0.995      0.895      0.737          1      0.995      0.895
                 horse          4          2      0.903          1      0.995       0.65      0.903          1      0.995      0.226
              elephant          4          2      0.946          1      0.995      0.448      0.946          1      0.995        0.4
              umbrella          4          1       0.75          1      0.995      0.895       0.75          1      0.995      0.895
          potted plant          4          1          1          1      0.995      0.796          1          1      0.995      0.796

2024-05-24 09:13:57,840 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
2024-05-24 09:13:58,935 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
Speed: 0.1ms preprocess, 2.2ms inference, 0.0ms loss, 0.8ms postprocess per image
Results saved to /home/burhan/tests/ultralytics/runs/segment/train6
2024-05-24 09:14:00,430 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
Ultralytics HUB: Syncing final model...
2024-05-24 09:14:01,795 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
2024-05-24 09:14:02,201 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
 59%|█████▉    | 13.5M/22.8M [00:00<00:00, 15.2MB/s]2024-05-24 09:14:04,112 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.
100%|██████████| 22.8M/22.8M [00:01<00:00, 14.2MB/s]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/burhan/ultra_repo/ultralytics/ultralytics/engine/model.py", line 660, in train
    self.trainer.train()
  File "/home/burhan/ultra_repo/ultralytics/ultralytics/engine/trainer.py", line 205, in train
    self._do_train(world_size)
  File "/home/burhan/ultra_repo/ultralytics/ultralytics/engine/trainer.py", line 468, in _do_train
    self.run_callbacks("on_train_end")
  File "/home/burhan/ultra_repo/ultralytics/ultralytics/engine/trainer.py", line 165, in run_callbacks
    callback(self)
  File "/home/burhan/ultra_repo/ultralytics/ultralytics/utils/callbacks/hub.py", line 69, in on_train_end
    LOGGER.info(f"{PREFIX}Done ✅\n" f"{PREFIX}View model at {session.model_url} 🚀")
AttributeError: 'HUBTrainingSession' object has no attribute 'model_url'
>>> 2024-05-24 09:14:08,415 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
Ultralytics HUB: Received no response from the request. If this issue persists please visit https://github.com/ultralytics/hub/issues for assistance.

@Laughing-q
Copy link
Member Author

I attempted launching a local training while logged into my HUB account (both with and without DDP), but the HUB logging doesn't appear to work for either case on this branch.

from ultralytics import YOLO, hub

hub.login(API_KEY)
>>> Ultralytics HUB: New authentication successful>>> True

model = YOLO("yolov8s-pose.pt")
results = model.train(data="coco8-pose.yaml", epochs=10, device=6)

No model was uploaded after training completes

@glenn-jocher @Burhan-Q @sergiuwaxmann Guys I think I found a bug of hub-sdk package here...when using HUB logging for local training.
HUB logging does not work properly when cache != ram here:

"cache": model_args.get("cache", "ram"),

which means HUB logging fails when we pass an arg to override cache(True or False) i.e using following script to launch a training locally on main branch won't get any logging on HUB:

from ultralytics import YOLO, hub
hub.login(API_KEY)
model = YOLO("yolov8s-pose.pt")
results = model.train(data="coco8-pose.yaml", epochs=10, cache=True)

meanwhile it throws hub error log:

2024-05-24 22:06:46,208 - hub_sdk.helpers.logger - ERROR - Unknown error occurred.
2024-05-24 22:06:46,210 - hub_sdk.helpers.logger - ERROR - Received no response from the server while creating the model

Based on the case, and the fact I updated the parameter of passing self.args to self.hub_session.create_model in this PR:

self.hub_session.create_model(self.args)

By default cache equals to False from self.args, hence no HUB logging.
It seems to me root is the cache issue from hub-sdk package.

@Laughing-q
Copy link
Member Author

Laughing-q commented May 24, 2024

I could easily fix the issue in this PR by excluding cache from self.args before passing it to self.hub_session.create_model, but it's not the root issue to me.🤔

@glenn-jocher
Copy link
Member

@Laughing-q @Burhan-Q @sergiuwaxmann strange. I think this PR might need some extra study, if we rush a solution we might just end up with more bugs. What we need is a solution that will log to HUB correctly when training from both:

  • Starting from HUB (single-GPU and DDP)
  • Starting from ultralytics after logging in to HUB with yolo hub login (single and DDP)

We should really strive to implement the logging identically to W&B, which works correctly with our callbacks in all scenarios.

I don't have much time today but I will look into this this weekend.

@glenn-jocher glenn-jocher added the TODO High priority items label May 26, 2024
@Laughing-q
Copy link
Member Author

Laughing-q commented Jun 23, 2024

@glenn-jocher I resolved the conflicts and eliminated the hub_model_url. And I tested all the cases(training locally or from HUB on both single-gpu mode and DDP mode) and all works properly.
Now this PR looks much cleaner. Thanks for the refactoring PR!

FYI I used to consider updating trainer.args.model to model_url directly without introducing a new attribute would cause issue to model initialization, but it turns out it wouldn't since the value of trainer.args.model has already been recorded to trainer.model in Trainer initialization, so it's free for us to use for model_url.

@glenn-jocher
Copy link
Member

@Laughing-q wow this is great, much simpler!

@glenn-jocher glenn-jocher removed the TODO High priority items label Jun 23, 2024
@glenn-jocher glenn-jocher changed the title Attempt to fix HUB session with DDP training ultralytics 8.2.41 fix HUB session with DDP training Jun 23, 2024
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
@glenn-jocher
Copy link
Member

@Laughing-q I'm getting errors when training DDP from HUB to local.

I see there are dataset download issues also, this appears to be happening twice, so I think we need to only autodownload datasets on RANK -1, 0, but that might be a separate issue.

Screenshot 2024-06-23 at 18 51 28

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
@glenn-jocher
Copy link
Member

@Laughing-q I've been testing this some more and something strange is happening on dataset download from HUB (both single and multi-GPU), where coco8 is not unzipping correctly to ../datasets/coco8, it's unzipping to ../datasets/coco8/coco8. I'm going to merge this PR and try to figure out what's happening on the dataset unzip issue.

@glenn-jocher glenn-jocher changed the title ultralytics 8.2.41 fix HUB session with DDP training Fix HUB session with DDP training Jun 23, 2024
@glenn-jocher glenn-jocher merged commit 1696024 into main Jun 23, 2024
12 of 13 checks passed
@glenn-jocher glenn-jocher deleted the hub-session branch June 23, 2024 18:00
DannyCooler added a commit to ecs-enerserv/ultralytics that referenced this pull request Aug 15, 2024
* Display Val images per class (ultralytics#12645)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Docs: Update HUB Teams page (ultralytics#13215)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix ARM64 Docker building (ultralytics#13217)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Classifier last layer indexing (ultralytics#13219)

* Update Exporter for `tf_keras` install (ultralytics#13231)

* Install `cmake` with `onnxsim` (ultralytics#13222)

* Add multiple lines graph support in `analytics` 8.2.26 (ultralytics#13214)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add Prettier for YAML formatting to Ultralytics Actions (ultralytics#13236)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Docs Solutions to Navigation Bar (ultralytics#13249)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Richard Abrich <richard.abrich@gmail.com>

* Add Data Collection and Annotation Docs Page and Preprocessing Annotated Data Docs Page (ultralytics#13253)

* Update `tensorstore` link for ARM64 Docker (ultralytics#13264)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add YOLOv10 model description in docs home page (ultralytics#13265)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix `xyxyxyxy2xywhr` for Numpy inputs (ultralytics#13273)

* `ultralytics 8.2.27` replace `onnxsim` with `onnxslim` (ultralytics#12989)

Co-authored-by: inisis <desmond.yao@buaa.edu.cn>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: inisis <46103969+inisis@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Use new `ultralytics-thop` package (ultralytics#13282)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Revert `ultralytics-thop` to optional (ultralytics#13290)

* Update HUB Integrations page in Docs (ultralytics#13292)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Docs spelling and grammar fixes (ultralytics#13307)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: RainRat <rainrat78@yahoo.ca>

* Update HUB SDK Docs (ultralytics#13309)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* import `torchvision` during Predict warmup (ultralytics#13313)

* `ultralytics 8.2.28` improved NMS speeds (ultralytics#13315)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix for ValueError (expected type INT8) (ultralytics#13341)

* Suppress YouTube Test `ConnectionError` (ultralytics#13357)

* Add ops.py comment for `nm` = number of masks (ultralytics#13353)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Docs export table from `onnxsim` to `onnxslim` (ultralytics#13324)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add area chart in `analytics` (ultralytics#13391)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Clean up Docs pages (ultralytics#13370)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Search for model metadata with TensorFlow GraphDef (ultralytics#13389)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Edge TPU export table fix (ultralytics#13420)

* Add https://youtu.be/pWYiene9lYw & https://youtu.be/Unt4Lfid7aY to docs (ultralytics#13380)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Minimum Reproducible Example (MRE) Docs page (ultralytics#13443)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Python file headers (ultralytics#13445)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Paddle 2.6.0 Dockerfile install bug (ultralytics#13447)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.29` new fractional AutoBatch feature (ultralytics#13446)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Refactor Python code (ultralytics#13448)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Code Refactor for Speed and Readability (ultralytics#13450)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.30` automated tags and release notes (ultralytics#13164)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix release publish action (ultralytics#13462)

* Update publish.yml to handle existing tag (ultralytics#13463)

* Update publish.yml (ultralytics#13464)

* Docs Prettier reformat (ultralytics#13483)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Update CI to `pull_request_target` (ultralytics#13495)

* Add NVIDIA Jetpack4 and Jetpack5 Docker Images (ultralytics#13100)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Lakshantha <lakshantha@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.31` NVIDIA Jetpack4 and Jetpack5 Dockerfile Images (ultralytics#13496)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix `jp` to `jetpack` (ultralytics#13499)

* Add https://youtu.be/ydGdibB5Mds to docs (ultralytics#13555)

* `ultralytics 8.2.32` Apple MPS device Autobatch handling (ultralytics#13568)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.33` pin `numpy<2.0.0` for compatibility (ultralytics#13661)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.34` bump `ultralytics-thop>=2.0.0` (ultralytics#13662)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Code Refactor `ruff check --fix --extend-select I` (ultralytics#13672)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Clean up unused `Silence` module (ultralytics#13674)

* `ultralytics 8.2.35` add YOLOv9t/s/m models (ultralytics#13504)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update YOLOv9 YAMLs (ultralytics#13756)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix TensorRT Doc Overview URL (ultralytics#13759)

* YOLOv9 model docs page cleanup (ultralytics#13757)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Apply new Ruff actions to Python codeblocks (ultralytics#13783)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* ROS Quickstart Guide (ultralytics#13553)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Ruff formatting actions (ultralytics#13787)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* https://youtu.be/biIW5Z6GYl0 to docs (ultralytics#13797)

* Replace https://youtu.be/biIW5Z6GYl0 with https://www.youtube.com/embed/biIW5Z6GYl0 (ultralytics#13804)

* Deprecate `Silence` module in favor of `nn.Identity` (ultralytics#13785)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>

* `ultralytics 8.2.36` update Ultralytics color palette (ultralytics#13808)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update CLA Action (ultralytics#13831)

* Update OpenCV image read error message (ultralytics#13822)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* ROS quickstart Docs page cleanup (ultralytics#13835)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Annotator `txt_color` updates (ultralytics#13842)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.37` update `temporary_modules` and Remove YOLOv9e `Silence` module (ultralytics#13819)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.38` official YOLOv10 support (ultralytics#13113)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>

* Code refactor https://ultralytics.com/actions (ultralytics#13844)

* ROS Quickstart, fixed code formatting (ultralytics#13855)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Replace `+=` with faster list `.append()` (ultralytics#13849)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix ambiguous variable names (ultralytics#13864)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Alex Pasquali <alexpasquali98@gmail.com>

* Add https://youtu.be/tq3FU_QczxE to docs (ultralytics#13867)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update yolov8-p6.yaml with model parameters and GFLOPs (ultralytics#13862)

* Fix HUB link https://ultralytics.com/hub (ultralytics#13884)

Co-authored-by: Mughees Ahmad <itsmughees@gmail.com>

* `ultralytics 8.2.39` update `onnxslim>=0.1.31` (ultralytics#13883)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Kayzwer <68285002+Kayzwer@users.noreply.github.com>

* `ultralytics 8.2.40` refactor HUB code into callbacks (ultralytics#13896)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Adjust `numpy<2.0.0` compatibility (ultralytics#13906)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix HUB session with DDP training (ultralytics#13103)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Compress ROS Guide Images (ultralytics#13914)

* `ultralytics 8.2.41` fix HUB unzip subdirectory bug (ultralytics#13913)

* Add YOLOv8 OpenVINO C++ Inference example (ultralytics#13839)

Co-authored-by: Muhammad Amir Abdurrozaq <m.amir.hs19@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Ultralytics TensorRT10 update (ultralytics#13933)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Dockerfile FROM `pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime` (ultralytics#13937)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add CLI commands for `predict` and `train` YOLOv10 models. (ultralytics#13940)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.42` NVIDIA TensorRT 10 default (ultralytics#13943)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: DeepDiver <zhaoxu1015@gmail.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>

* YOLO Segment `sigmoid()` fix (ultralytics#13939)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: DeepDiver <zhaoxu1015@gmail.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>

* Add warning for inference end2end models with `augment` arg (ultralytics#13958)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Adjust box labels on right image side (ultralytics#13959)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.43` enable `classes` filter for end2end models (ultralytics#13971)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Added a `max_size` parameter to the `plot_images` function (ultralytics#14002)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add Tips for Model Training Docs Page (ultralytics#14011)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.44` Increase Predict dataloader robustness (ultralytics#14005)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.45` Fix YOLOv8 `augment` inference (ultralytics#14017)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.46` fix OBB Results `xyxy` attribute (ultralytics#14020)

* Add https://youtu.be/eX5ad6udQ9Q to docs (ultralytics#14077)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix deprecation warning (ultralytics#14091)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add Insights on Model Evaluation and Fine-Tuning Docs Page (ultralytics#14085)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Strip `dfl_loss` from `BboxLoss` (ultralytics#14041)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.46` Results, DFL and AIGym fixes (ultralytics#14074)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: AAOMM <52826299+Chayanonjackal@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: zzzer <48149018+zhixuwei@users.noreply.github.com>
Co-authored-by: Abirami Vina <abirami.vina@gmail.com>

* `ultralytics 8.2.47` YOLOv8 zero-shot action recognition example (ultralytics#13935)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.48` strip model `criterion` on save (ultralytics#14106)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Default strip_optimizer() to `use_dill=False` (ultralytics#14107)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Ultralytics Code Refactor https://ultralytics.com/actions (ultralytics#14109)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Update NVIDIA Jetson DeepStream Guide with YOLOv8 and Jetson Orin Support (ultralytics#14059)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>

* Update FAQ.md (ultralytics#14134)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Update Results and CFG docstrings (ultralytics#14139)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add Docs models pages FAQs (ultralytics#14167)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add Model Testing Guide and Best Practices for Model Deployment Guide (ultralytics#14105)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: RizwanMunawar <chr043416@gmail.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>

* Add https://youtu.be/mUybgOlSxxA to docs (ultralytics#14195)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add FAQ sections to Modes and Tasks (ultralytics#14181)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Abirami Vina <abirami.vina@gmail.com>
Co-authored-by: RizwanMunawar <chr043416@gmail.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>

* `ultralytics 8.2.49` fix classification `setup_model` (ultralytics#14199)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add FAQs to Docs Datasets and Help sections (ultralytics#14211)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix mkdocs.yml raw image URLs (ultralytics#14213)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>

* Fix Action Recognition Example with `torch>=2.0` (ultralytics#14232)

* Add Discourse at https://community.ultralytics.com (ultralytics#14231)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.50` new Streamlit live inference Solution (ultralytics#14210)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: RizwanMunawar <chr043416@gmail.com>
Co-authored-by: Kayzwer <68285002+Kayzwer@users.noreply.github.com>

* Pin `tensorrt<=10.1.0` to fix `libnvinfer_builder_resource_win.so.10.2.0` error (ultralytics#14239)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Dockerfile install `tensorrt-cu12==10.1.0` (ultralytics#14240)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Pose docs with keypoint explanations (ultralytics#14248)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.51` update YOLOv9 `GITHUB_ASSETS_NAMES` (ultralytics#14261)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Allow OpenVINO export from CUDA (ultralytics#14256)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix `end2end` attribute in `init_criterion` (ultralytics#14267)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add Maintaining Your Computer Vision Models Docs Page (ultralytics#14304)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `allow_empty=True` for Classify dataset class directories (ultralytics#14301)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Annotator PIL Image size (width, height) order (ultralytics#14227)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.52` fix CenterCrop transforms for PIL Image inputs (ultralytics#14308)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Lucas Buligon Antunes <lukasbuligonantunes@gmail.com>

* BaseTrainer with `find_unused_parameters=True` when using DistributedDataParallel() (ultralytics#14323)

* Ultralytics Asset URL Update (ultralytics#14345)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.53` Heatmaps fix for empty images (ultralytics#14329)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: RizwanMunawar <chr043416@gmail.com>

* `ultralytics 8.2.54` resolve YouTube bug with switch to `pytubefix` (ultralytics#14354)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add https://youtu.be/fLBbyhPbWzY to docs (ultralytics#14356)

* `ultralytics 8.2.55` adaptive `tflite_support` logic (ultralytics#14385)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>
Co-authored-by: Nguyễn Anh Bình <sometimesocrazy@gmail.com>
Co-authored-by: Johnny <johnnynuca14@gmail.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.56` Streamlit tracking app (ultralytics#14269)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>
Co-authored-by: Nguyễn Anh Bình <sometimesocrazy@gmail.com>
Co-authored-by: Johnny <johnnynuca14@gmail.com>

* Fix `TORCHVISION_0_18` for `allow_empty=True` (ultralytics#14415)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/gX5kSRD56Gs to docs (ultralytics#14417)

* Fix `model.save()` method to FP16 (ultralytics#14418)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.57` new Solutions Tests and Docs (ultralytics#14408)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Scope `tkinter` and `streamlit` in Solutions tests (ultralytics#14426)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix `_process_batch()` docstrings (ultralytics#14454)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.58` FastSAM code refactor (ultralytics#14450)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix `model` parameter in Pose, Segment dataset train examples (ultralytics#14505)

* Warn on `save_hybrid=True` (ultralytics#14484)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Remove redundant assignment (ultralytics#14498)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update `FastSAM` and `SAM` docs (ultralytics#14499)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add Kaggle Integrations Docs Page (ultralytics#14487)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix `Enable Tracking` Button and Optimize FPS in Streamlit Application (ultralytics#14508)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.59` use `Results.save_txt` for validation (ultralytics#14496)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Allow `test-dev2017.txt` for val (ultralytics#14519)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/isc06_9qnM0 to docs (ultralytics#14525)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix NCNN multiple-volumes PNNX download bug (ultralytics#14533)

* `ultralytics 8.2.60` refactor `process_mask_upsample` (ultralytics#14474)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Multi-GPU trained model export (ultralytics#14551)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Docs pretty `__init__.py` URLs (ultralytics#14550)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/ziJR01lKnio to docs (ultralytics#14554)

* Add Custom CLIP Model Download Path (ultralytics#14517)

Co-authored-by: wangsrGit119 <1215618342@email.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.61` fix `num_threads` for CPU training (ultralytics#14544)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Pin `pytubefix==6.3.4` for YouTube fix (ultralytics#14571)

* Replace `enumerate` + index with `zip()` (ultralytics#14574)

* Engine Model and Results Docs improvements (ultralytics#14564)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Felipe Parodi <fparodi@pennmedicine.upenn.edu>

* Add Streamlit Inference Python `model` arg (ultralytics#14563)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.62` add Explorer CLI `model` and `data` args (ultralytics#14581)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Mohammed Yasin <32206511+Y-T-G@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix Docs plaintext link scan (ultralytics#14583)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>

* Plaintext negative lookbehind scan (ultralytics#14601)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Replace enumerate with zip in models/yolo (ultralytics#14599)

* `ultralytics 8.2.63` refactor `FastSAMPredictor` (ultralytics#14582)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update format.yml for PAT (ultralytics#14608)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix OBB Docs page commas error (ultralytics#14609)

* Add NAS autodownload (ultralytics#14627)

* Windows `torch==2.4.0` Segment `augment=True` failed test bypass (ultralytics#14637)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix torchvision InterpolationMode warnings (ultralytics#14632)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>

* Patch `torch.load(..., weights_only=False)` to reduce warnings (ultralytics#14638)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Attempt to fix NAS models inference (ultralytics#14630)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>

* Fix Streamlit Inference model suffix bug (ultralytics#14621)

Co-authored-by: malopez <miguelangel.lopez@solute.es>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix `torch.amp.autocast('cuda')` warnings (ultralytics#14633)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>

* `ultralytics 8.2.64` YOLOv10 SavedModel, TFlite, and GraphDef export (ultralytics#14572)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* New AGLU activation module (ultralytics#14644)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fix `torch.amp` has no attribute `GradScaler` (ultralytics#14647)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add warning when `cache_ram` works with classify (ultralytics#14650)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Allow `agnostic_nms` option for validation (ultralytics#14675)

* `ultralytics 8.2.65` fix YouTube throttling bug (ultralytics#14684)

* Remove duplicate `make_divisible` function (ultralytics#14690)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/_gRqR-miFPE to docs (ultralytics#14698)

* Updates `save_period` to include first epoch (ultralytics#14700)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add compatible `tensorstore` versions for `aarch64` (ultralytics#14697)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.66` HUB model autodownload (ultralytics#14702)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `SETTINGS` type and key checks (ultralytics#14703)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add JetPack6 Docker for NVIDIA Jetson Orin Series (ultralytics#14707)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.67` new NVIDIA Jetson Orin Jetpack 6 Docker image (ultralytics#14740)

* Simplify Dockerfile `WORKDIR` (ultralytics#14750)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.68` new HUB GCP region latency tests (ultralytics#14753)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add JupyterLab Integrations Docs Page  (ultralytics#14755)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fixed OpenVINO Docs formatting (ultralytics#14773)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Add IBM Watsonx Integrations Docs Page (ultralytics#14785)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Update Ultralytics issue templates (ultralytics#14718)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Eliminate `set()` to avoid `set()` + `list()` op (ultralytics#14745)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.69` FastSAM prompt inference refactor (ultralytics#14724)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update comet from init() to login() (ultralytics#14793)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* New Meta Segment Anything Model 2 (SAM2) Docs page (ultralytics#14794)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* SAM2 mkdocs.yml fix (ultralytics#14796)

* `py-cpuinfo` Exception context manager fix (ultralytics#14814)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/_gRqR-miFPE & https://youtu.be/CfbHwPG01cE to docs (ultralytics#14817)

* `ultralytics 8.2.70` Segment Anything Model 2 (SAM 2) (ultralytics#14813)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Exported model batch size validation fix (ultralytics#14845)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix `model` in Pose, Segment datasets train FAQ sections (ultralytics#14877)

* Fixed `box_label` docstrings (ultralytics#14866)

Co-authored-by: dearMOMO <34231503+dearMOMO@users.noreply.github.com>

* Add missing CLI `yolo` commands for `TASK` and `MODE` in Docs - Quickstart and CLI Guide (ultralytics#14882)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update SAM 2 docs (ultralytics#14864)

* Increase Dockerfile build `max-parallel` (ultralytics#14892)

* Fix incorrect CLI commands in Datasets Docs (ultralytics#14889)

* Add Segment masks to YOLO-Seg labels converter (ultralytics#14557)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.71` Multinode DDP training (ultralytics#14879)

Co-authored-by: Haris Rehman <haris.rehman.cowlar@gmail.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Delete Docker Cache before building Image (ultralytics#14894)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* ROS quickstart meta description (ultralytics#14932)

* Fix the docstring of xywhr2xyxyxyxy (ultralytics#14934)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fixed `circle_label` and `text_label` docstrings (ultralytics#14909)

* Fix `is_url()` and `check_disk_space()` docstrings in downloads.py (ultralytics#14923)

* Update MLP module for RTDETR backward compatibility (ultralytics#14901)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Corrects CONTRIBUTING.md relative link to CLA.md (ultralytics#14857)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.72` SAM 2 multiple-`bboxes` support (ultralytics#14928)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.73` Meta SAM2 Refactor  (ultralytics#14867)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Ignore Vimeo 401 'unauthorized' errors (ultralytics#14980)

* fix example for plotting Ray Tune history (ultralytics#14970)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update NVIDIA Jetson Docs with JetPack 6 (ultralytics#14939)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>

* Fix OpenVINO Export Docs (ultralytics#14918)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.74` add `fuse_score=True` BoT-SORT and ByteTrack arg (ultralytics#14965)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Fix Docker git permissions (ultralytics#14995)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Dedicated Inference API Docs (ultralytics#14992)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update HUB Inference API Docs (ultralytics#15035)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Sergiu Waxmann <waxmann.sergiu@me.com>

* Add `allow_background_images=True` in split_dota.py (ultralytics#15037)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* `ultralytics 8.2.75` new Docs author profiles (ultralytics#15050)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Docs CSS (ultralytics#15062)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Use macros for Docs tables de-duplication (ultralytics#14990)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Delete `/macros` dir from Docs site (ultralytics#15068)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Delete macros from sitemap.xml (ultralytics#15105)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Add https://youtu.be/EeDd5P4eS6A to docs (ultralytics#15107)

* Optimized SAHI video inference (ultralytics#15183)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update `convert_segment_masks_to_yolo_seg` to support custom datasets (ultralytics#15176)

* `ultralytics 8.2.76` Autobackend TensorRT/Triton Segment metadata fix (ultralytics#15185)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Contributing guidelines (ultralytics#15373)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Fixed multiscale preprocess_batch (ultralytics#15392)

* Improve trainer DDP device handling (ultralytics#15383)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update Conda CI (ultralytics#15443)

* Update Tracker docstrings (ultralytics#15469)

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* `ultralytics 8.2.77` new `color_mode=instance` plot arg (ultralytics#15034)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Update yolov8_sahi.py (ultralytics#15470)

Co-authored-by: UltralyticsAssistant <web@ultralytics.com>

* Ultralytics Actions JSON, CSS and autolabel support (ultralytics#15599)

Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>

* Remove unnecessary assignments (ultralytics#15582)

* YOLO Vision 2024 updates https://ultralytics.com/events/yolovision (ultralytics#15602)

Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>

---------

Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Adamcode <86471590+sunmooncode@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Sergiu Waxmann <47978446+sergiuwaxmann@users.noreply.github.com>
Co-authored-by: Lakshantha Dissanayake <lakshanthad@yahoo.com>
Co-authored-by: Muhammad Rizwan Munawar <muhammadrizwanmunawar123@gmail.com>
Co-authored-by: Richard Abrich <richard.abrich@gmail.com>
Co-authored-by: Abirami Vina <abirami.vina@gmail.com>
Co-authored-by: Kayzwer <68285002+Kayzwer@users.noreply.github.com>
Co-authored-by: inisis <desmond.yao@buaa.edu.cn>
Co-authored-by: inisis <46103969+inisis@users.noreply.github.com>
Co-authored-by: RainRat <rainrat78@yahoo.ca>
Co-authored-by: czy10383 <81451461+czy10383@users.noreply.github.com>
Co-authored-by: kubade-ashish <ashish.ak@perfios.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>
Co-authored-by: Paula Derrenger <107626595+pderrenger@users.noreply.github.com>
Co-authored-by: Ivor Zhu <130829914+IvorZhu331@users.noreply.github.com>
Co-authored-by: Ahmed Mahfouz <ahmelsamahy@gmail.com>
Co-authored-by: Lakshantha <lakshantha@ultralytics.com>
Co-authored-by: alexwine36 <alexwine36@gmail.com>
Co-authored-by: Laughing <61612323+Laughing-q@users.noreply.github.com>
Co-authored-by: Francesco Mattioli <Francesco.mttl@gmail.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: xiaoluohao <blackhu@users.noreply.github.com>
Co-authored-by: Alex Pasquali <alexpasquali98@gmail.com>
Co-authored-by: Mughees Ahmad <itsmughees@gmail.com>
Co-authored-by: Erlangga Yudi Pradana <erlanggayudipradana@gmail.com>
Co-authored-by: Muhammad Amir Abdurrozaq <m.amir.hs19@gmail.com>
Co-authored-by: DeepDiver <zhaoxu1015@gmail.com>
Co-authored-by: jackwolfey <91648300+jackwolfey@users.noreply.github.com>
Co-authored-by: bobyard-com <154289614+bobyard-com@users.noreply.github.com>
Co-authored-by: zzzer <48149018+zhixuwei@users.noreply.github.com>
Co-authored-by: AAOMM <52826299+Chayanonjackal@users.noreply.github.com>
Co-authored-by: fatih c. akyon <34196005+fcakyon@users.noreply.github.com>
Co-authored-by: RizwanMunawar <chr043416@gmail.com>
Co-authored-by: JF Chen <k-2feng@hotmail.com>
Co-authored-by: Antônio Martos Harres <tom.mharres@gmail.com>
Co-authored-by: Alejandro Casanova <36633619+Alejandro-Casanova@users.noreply.github.com>
Co-authored-by: Alexis IMBERT <97242148+Alexis-IMBERT@users.noreply.github.com>
Co-authored-by: Sheffey <57262511+SheffeyG@users.noreply.github.com>
Co-authored-by: Lucas Buligon Antunes <lukasbuligonantunes@gmail.com>
Co-authored-by: Chia-Hsiang Tsai <84863554+Tsai-chia-hsiang@users.noreply.github.com>
Co-authored-by: Nguyễn Anh Bình <sometimesocrazy@gmail.com>
Co-authored-by: Johnny <johnnynuca14@gmail.com>
Co-authored-by: Haonan Liu <hnliu_2@stu.xidian.edu.cn>
Co-authored-by: Aryan Jassal <84617406+aryanjassal@users.noreply.github.com>
Co-authored-by: zhiqiang yang <89863442+yang-0201@users.noreply.github.com>
Co-authored-by: Ariel Kukulanski <akukulanski@gmail.com>
Co-authored-by: Mohammed Yasin <32206511+Y-T-G@users.noreply.github.com>
Co-authored-by: suke <32221726+wangsrGit119@users.noreply.github.com>
Co-authored-by: wangsrGit119 <1215618342@email.com>
Co-authored-by: Felipe Parodi <fparodi@pennmedicine.upenn.edu>
Co-authored-by: rulosant <rulosanti@gmail.com>
Co-authored-by: Miguel Angel Lopez <malopez00@gmail.com>
Co-authored-by: malopez <miguelangel.lopez@solute.es>
Co-authored-by: Hassan Ghaffari <53246858+hasanghaffari93@users.noreply.github.com>
Co-authored-by: Kevin <kevin.qh.lin@gmail.com>
Co-authored-by: Jan Knobloch <116908874+jk4e@users.noreply.github.com>
Co-authored-by: dearMOMO <34231503+dearMOMO@users.noreply.github.com>
Co-authored-by: Haris Rehman <115916265+Harri200191@users.noreply.github.com>
Co-authored-by: Haris Rehman <haris.rehman.cowlar@gmail.com>
Co-authored-by: Zeel B Patel <patel_zeel@iitgn.ac.in>
Co-authored-by: Maxi <60036186+mfloto@users.noreply.github.com>
Co-authored-by: Sergiu Waxmann <waxmann.sergiu@me.com>
Co-authored-by: Galasnow <854932917@qq.com>
Co-authored-by: alanZee <92136487+alanZee@users.noreply.github.com>
Noobtoss pushed a commit to Noobtoss/ultralytics that referenced this pull request Sep 12, 2024
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Burhan <62214284+Burhan-Q@users.noreply.github.com>
Co-authored-by: Ultralytics Assistant <135830346+UltralyticsAssistant@users.noreply.github.com>
Co-authored-by: UltralyticsAssistant <web@ultralytics.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working HUB Ultralytics HUB issues
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants