🌟 Summary
Ultralytics 8.4.194 makes automatic batch sizing more reliable across tasks, alongside practical fixes for model loading, results saving, datasets, and deployment workflows.
📊 Key Changes
- 🚀 Automatic batch sizing now uses the training dataset for every task. It accounts for dataset size and labels across classification, detection, and multi-dataset training. If profiling runs out of memory during backward computation, AutoBatch treats that as a limit rather than relying on an invalid measurement.
- 🛡️ Model YAML parsing is safer and more consistent. Activations must resolve to supported
torch.nnmodules, and model entries must be PyTorch module classes. Custom YAMLs using other expressions may need updating. - 💾 Saving prediction results is more robust.
Results.save()andplot(save=True)now produce sensible.jpgfilenames for sources such as webcams, videos, or missing paths, and create parent directories when needed. - 🔄 Similarity search uses the selected image directory on each startup. This avoids reusing stale indexes from another dataset; the trade-off is that embeddings are rebuilt each time.
- 🧩 Dataset and URL handling is more dependable. Non-PNG semantic masks are resolved before cache hashing, and URL schemes such as
HTTPS://,GS://, andUL://are now handled without case sensitivity. - 📈 Benchmarking and evaluation guidance are clearer. TensorFlow GraphDef benchmarks now include OBB and pose, and the docs explain that classes absent from validation receive the overall mAP value rather than a measured per-class score.
🎯 Purpose & Impact
- ✅ AutoBatch is less likely to choose a batch size that exceeds a small dataset or available GPU memory, and multi-dataset World/YOLOE training avoids label-access failures.
- 🔒 Consistent, restricted YAML parsing improves safety, though nonstandard custom model configurations may no longer load.
- 🧰 More reliable result saving, mask-cache updates, and URL routing reduce common workflow errors.
- 🔍 Similarity search results better reflect the images currently in the chosen folder, while requiring index-building work at startup.
- 📚 Documentation updates clarify metric interpretation and integration behavior; no new model architecture is introduced in this release.
What's Changed
- Fix classification dataset URL scheme handling by @Vaishnavi220506 in #26879
- Benchmark TensorFlow GraphDef for OBB and pose by @glenn-jocher in #26952
- Give each Colab VM its own anonymous settings id by @glenn-jocher in #26959
- Fix settings help URL punctuation by @glenn-jocher in #26962
- Update the COCO JSON guide's cache note now that the hash includes mtime by @Echoslayer in #26960
- Explain how metrics.box.maps fills classes absent from the val set by @Echoslayer in #26955
- Build the similarity search index from the data directory on every start by @raimbekovm in #26965
- Resolve non-PNG semantic mask paths before hashing the label cache by @raimbekovm in #26954
- Handle URL schemes case-insensitively at remaining routing sites by @cainiao33 in #26964
- Fix
Results.saveandplotdefault filename when path is None or extensionless by @Rahulbiradar9 in #26958 - Fix stale framing, logger defaults and nav order on integration pages by @raimbekovm in #26957
- Use one model YAML parsing path in
parse_modelby @Y-T-G in #26963 ultralytics 8.4.194Size AutoBatch from the train dataset for every task by @raimbekovm in #26956
Full Changelog: v8.4.193...v8.4.194