# New Release: Ultralytics v8.4.159

**URL:** https://community.ultralytics.com/t/new-release-ultralytics-v8-4-159/2235
**Category:** Discussion
**Tags:** announcements, ultralytics-official, releases
**Created:** [September 22, 2026, 1:10pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-4-159/2235 "2026-09-22T13:10:05Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![glenn-jocher](https://sea1.discourse-cdn.com/flex001/user_avatar/community.ultralytics.com/glenn-jocher/32/83_2.png) [@glenn-jocher](https://community.ultralytics.com/u/glenn-jocher)
#### Post date: [September 22, 2026, 1:10pm UTC](https://community.ultralytics.com/t/new-release-ultralytics-v8-4-159/2235/1 "2026-09-22T13:10:05Z")

</div>

# 🚀 Ultralytics v8.4.159 Released

Ultralytics v8.4.159 delivers **smarter dataset split handling, immediate training system metrics, and more memory-efficient INT8 SavedModel exports**. These updates reduce unnecessary downloads, improve training visibility, and make exports more reliable on memory-constrained devices.

## 📥 Smarter Dataset Preparation

Training with Platform NDJSON datasets now respects the requested validation split throughout conversion, caching, loading, and evaluation.

- Using `split=val` skips unused test images by default.
- Using `split=test` retains test images and validates against the test split.
- Split-aware caching prevents validation and test conversions from incorrectly sharing cached data.
- YOLO, RT-DETR, and classification training now consistently use the selected split and dataset fractions.
- Existing standalone conversion, metadata inference, classification fallbacks, and depth-calibration provenance remain supported.

The result is **faster preparation, reduced storage usage, and more predictable validation behavior**.

## 📊 Earlier Training System Metrics

The existing `training_started` Platform request now includes an initial system snapshot, allowing CPU, memory, disk, and related metrics to appear before the first epoch finishes.

Epoch-level reporting remains unchanged, and no additional requests, timers, or periodic monitoring signals are introduced. Optional monitoring also remains isolated from required training dependencies.

This improvement was contributed by [Glenn Jocher](https://github.com/glenn-jocher) in [PR #26276: Skip unused test downloads and report initial training system metrics](https://github.com/ultralytics/ultralytics/pull/26276).

## 🧠 Lower-Memory INT8 SavedModel Export

INT8 SavedModel export now creates calibration data only when required for ONNX-to-SavedModel conversion and releases it immediately afterward.

Testing on an Apple M4 system showed:

- Approximately **533.7 MiB lower peak process memory**
- An **18.2% reduction in peak memory**
- Unchanged export behavior, runtime, calibration data, and tested full-integer TFLite outputs

This should reduce the risk of out-of-memory failures on constrained systems. The optimization was contributed by [Aman Harsh](https://github.com/amanharshx) in [PR #26272: Reduce peak memory during INT8 SavedModel export](https://github.com/ultralytics/ultralytics/pull/26272).

## 🧪 Tests and Documentation

This release also expands coverage for:

- Validation and test split selection
- Split-aware cache behavior
- Depth-calibration handling
- Internal Platform system-metrics documentation

## ⚡ Try v8.4.159

Upgrade with:

```bash
pip install -U ultralytics

```

Explore the complete release details in the [Ultralytics v8.4.159 release](https://github.com/ultralytics/ultralytics/releases/tag/v8.4.159), or review every change in the [full v8.4.158 to v8.4.159 changelog](https://github.com/ultralytics/ultralytics/compare/v8.4.158...v8.4.159).

Give the new release a try and share your results, feedback, or any issues you encounter with the Ultralytics community! 🙌
