π Summary
π Ultralytics 8.4.94 modernizes deployment, improves validation and tracking reliability, and expands edge-device and dataset documentation.
π Key Changes
-
TorchScript mobile optimization removed π οΈ
- Removed the deprecated PyTorch Mobile/XNNPACK optimization path and the TorchScript
optimizeargument. - Regular TorchScript export remains available for legacy C++ and LibTorch applications.
- Mobile deployments are now directed to ExecuTorch, PyTorchβs supported successor for mobile and edge inference.
- The
optimizeargument is retained for DEEPX exports only.
- Removed the deprecated PyTorch Mobile/XNNPACK optimization path and the TorchScript
-
New Ambarella CVflow deployment guide π·
- Added a preview workflow for deploying YOLO models on Ambarella SoCs such as CV72 and CV75.
- Documents SpongeTorch compression-aware training, ONNX export, offline CVflow compilation, AmbaPB inference, and host-side validation.
- The guide is clearly marked as an early preview and requires Ambarellaβs proprietary SDK and toolchain.
-
Improved semantic segmentation dataset support π§©
- Expanded and corrected documentation for ADE20K, Cityscapes, and Cityscapes8.
- Clarified manual download requirements, dataset sizes, test-set limitations, licensing, class mappings, and benchmark usage.
- Semantic segmentation can now automatically detect a root-level
masks/directory when selecting PNG-mask data. - Added guidance for using polygon labels and Smart annotation through Ultralytics Platform.
-
Dataset configuration validation strengthened β
- Dataset
fractionmust now be greater than zero, preventing empty training datasets caused byfraction=0. - Other fractional settings, such as dropout and scale, continue to allow zero.
- Dataset
-
Pose26 training loss corrected π―
- Fixed loss selection when
Pose26models run with end-to-end mode disabled. - This ensures keypoint decoding and training loss remain aligned across Pose and Pose26 model heads.
- Fixed loss selection when
-
ReID tracking made more robust π
- Invalid or empty detection crops are now skipped instead of causing crashes.
- Original detection ordering is preserved, with missing appearance features represented as
Noneso trackers can fall back to motion or IoU association.
-
LVIS downloads reduced πΎ
- Removed the unused 7 GB
test2017.zipdownload because LVIS does not define a test split. - Updated the documented total download size to 20.7 GB.
- Removed the unused 7 GB
-
Documentation and CI cleanup π
- Added an Ambarella integration entry and refreshed deployment guidance.
- Removed outdated CI table entries and redundant YAML terminology.
- Added more dataset provenance, annotation, licensing, and usage notes.
π― Purpose & Impact
- π± More future-proof mobile deployment: Users targeting new mobile or edge applications should migrate from TorchScript Mobile to ExecuTorch. Existing C++ TorchScript workflows continue to work, but mobile optimization through
optimize=Trueis no longer supported. - βοΈ Cleaner export behavior: Removing obsolete mobile branches and guards reduces maintenance complexity and avoids relying on deprecated PyTorch APIs.
- π Broader edge hardware coverage: Ambarella users now have a documented path from YOLO training to compressed, compiled CVflow models, although the integration remains experimental and vendor verification is pending.
- π‘οΈ Fewer runtime failures: Invalid dataset fractions, incorrect Pose26 loss selection, and empty ReID crops are detected or handled more safely.
- π Lower setup overhead for LVIS: Fresh LVIS users avoid downloading an unnecessary 7 GB archive.
- π Clearer, more accurate documentation: Dataset limitations, licensing requirements, manual downloads, and semantic segmentation behavior are now easier to understand and less likely to cause setup or evaluation mistakes.
What's Changed
- Add Ambarella export guide by @lakshanthad in #25077
- Remove stale CI table entries by @glenn-jocher in #25137
- Reject zero dataset fractions by @glenn-jocher in #25141
- Refactor semantic dataset docs by @raimbekovm in #25134
- Fix Pose26 loss selection when end2end=False by @synml in #25132
- Fix ReID crash for invalid custom detection crops by @anshulll19 in #25135
- Add additional notes to dog-pose, hand keypoints, and tiger-pose entries in pose dataset index by @raimbekovm in #25144
- Stop lvis.yaml from downloading the unused test2017.zip archive by @raimbekovm in #25143
- Drop incorrect YAML expansion from dataset docs by @raimbekovm in #25142
- Remove TorchScript mobile optimization by @glenn-jocher in #25140
New Contributors
- @anshulll19 made their first contribution in #25135
- @synml made their first contribution in #25132
Full Changelog: v8.4.93...v8.4.94