v8.4.12 - `ultralytics 8.4.12` YOLOE-26 skip `set_classes` if text prompts already set (#23552)
🌟 Summary (single-line synopsis)
Ultralytics v8.4.12 streamlines YOLOE-26 class/text-prompt handling to avoid redundant updates, while improving multispectral (grayscale) training reliability and multi-GPU auto-selection 🧠⚡️🖥️
📊 Key Changes (major updates)
- YOLOE-26: Skip redundant
set_classes()when prompts already match 🧠⚡️- Adds a guard in
ultralytics/models/yolo/model.pyto avoid re-runningset_classes()ifmodel.namesalready matches the requestedclasses. - Only regenerates text embeddings (
get_text_pe(classes)) when a real class change is needed. - Ensures the predictor stays in sync by setting
self.predictor.model.names = self.model.names.
- Adds a guard in
- More robust GPU auto-selection under multi-process starts 🎲🖥️
- Adds a random tie-break when GPUs look equally idle, reducing the chance that multiple jobs pick the same GPU at launch ().