New Release: Ultralytics v8.4.2

:rocket: Ultralytics v8.4.2 is out!

TL;DR: Ultralytics v8.4.2 unblocks Ultralytics Platform (ul:// / NDJSON) classification training by converting datasets into the correct on-disk layout + validating properly, with a few helpful QoL and CI/docs updates :hammer_and_wrench::white_check_mark:

If you train classification from Ultralytics Platform datasets or .ndjson exports, this is a must update :tada:


:glowing_star: New Features / Key Changes

:puzzle_piece::label: Platform Classification Training Fix (most important)

PR: Fix Platform Classify training (ultralytics 8.4.2) by @glenn-jocher

What changed:

  • NDJSON conversion now detects task == "classify" and creates an ImageNet-style layout:
    • {split}/{class_name}/...
  • Detection/segmentation/pose/OBB conversions are unchanged (still using data.yaml, images/{split}/, labels/{split}/)
  • Downloads are more robust: parent directories are created before saving images pulled from URLs
  • Trainer improvement: Trainer.get_dataset() now always resolves ul:// / .ndjson into a local dataset first, then runs the correct dataset validation for the task :white_check_mark:

Why it matters:

  • Prevents failures caused by the wrong folder structure when training classification from Platform datasets
  • Ensures the trainer validates the dataset in a task-correct way

:brain::clipboard: Improvements

:magnifying_glass_tilted_left: Classification results: Results.summary() now returns top-5

PR: Return Classify top5 in Results summary by @glenn-jocher

  • Results.summary() for classification is intended to return top-5 classes + confidences, not just top-1
  • Note: the diff suggests each top-5 entry may be appended twice (likely unintended) :warning:
    If you spot duplicates in summary() output, please reply with a minimal repro.

:file_folder::wrench: Allow overriding save_dir reliably

PR: Exclude save_dir from argument validation by @Y-T-G

  • save_dir is now treated as an allowed override/config key
  • Makes output directory overrides more consistent across CLI/Python workflows (notebooks, sweeps, CI, etc.)

:test_tube::laptop: CI / Testing Updates

:white_check_mark: Re-enable NCNN export tests on ARM64

PR: Re-enable NCNN ARM64 exports in Tests CIs by @lakshanthad

  • Removes an ARM64 skip so NCNN export tests run on Apple Silicon/ARM CI
  • Still guarded against PyTorch < 2.0 due to known instability

:books::link: Docs / Branding Touch-ups

Included in PR: Return Classify top5 in Results summary by @glenn-jocher

  • Updates Kaggle model badge to YOLO11 (branding)
  • Fixes a billing link + updates a cloud-training docs path

:white_check_mark: How to Update

pip install -U ultralytics

Quick sanity check (classification example):

from ultralytics import YOLO

model = YOLO("yolo26n-cls.pt")  # YOLO26 recommended for new projects
results = model.predict("image.jpg")
print(results[0].summary())

:link: Release Links

You can review the full release details in the v8.4.2 GitHub release, and browse the complete diff in the v8.4.1 โ†’ v8.4.2 changelog comparison.


:speech_balloon: Feedback Wanted

If youโ€™re training classification via Ultralytics Platform ul:// datasets or .ndjson exports, let us know:

  • Did this resolve your training issues?
  • Are you seeing duplicated entries in Results.summary() top-5 output?
  • Any edge cases with class naming / splits / mixed datasets?

Thanks for helping improve YOLO for everyoneโ€”community reports and PRs are what keep things moving fast :raising_hands: