๐ Summary
TFLite export gets a targeted INT8 upgrade: per-channel quantization is fixed and INT8 exports are slimmer and more reliable in ultralytics 8.3.202. ๐
๐ Key Changes
- TFLite INT8 per-channel quantization fix by @Y-T-G, resolving Issue #21030. ๐ง See PR: TFLite per-channel INT8 quantization fix
- Removed explicit per-tensor override so per-channel INT8 works as intended (more accurate for conv weights).
- Disabled batchmatmul_unfold when exporting INT8 to avoid massive integer_quant file sizes and improve deployment practicality.
- Distributed Tuner robustness: if a MongoDB collection exists but is empty, tuning now seeds immediately instead of falling back to CSV. ๐ค See PR: Start distributed Tuner mutation if Mongo collection exists by @glenn-jocher
- CI stability: macOS runner pinned to macos-26 for consistent builds. ๐งช See PR: Update CI workflow to run on macOS 26 by @onuralpszr
๐ฏ Purpose & Impact
- Better accuracy and compatibility for TFLite INT8 models: Per-channel quantization is typically more accurate for convolution-heavy models like YOLO11. ๐
- Smaller INT8 artifacts and easier deployment: Disabling batchmatmul_unfold for INT8 prevents integer_quant files from ballooning (e.g., ~27MB vs ~3.2MB), making edge deployments lighter and faster to ship. ๐ฆ
- Smoother distributed hyperparameter tuning: Immediate start in multi-worker setups when a MongoDB collection exists, improving efficiency in large experiments. โ๏ธ
- More reliable CI: Fewer runner surprises, faster iteration for contributors, and steadier releases for users. โ
Quick tip to export INT8 TFLite with the new behavior:
from ultralytics import YOLO
model = YOLO("yolo11n.pt") # or your trained YOLO11 model
model.export(format="tflite", int8=True) # per-channel INT8 fix applied; leaner artifacts
Enjoy improved TFLite quantization and leaner edge-ready models! โจ
What's Changed
- Start distributed Tuner mutation if Mongo collection exists by @glenn-jocher in #22120
- ci: ๐ท Update CI workflow to run on macOS 26 by @onuralpszr in #22119
ultralytics 8.3.202
TFLiteper-channel
INT8 quantization fix by @Y-T-G in #22133
Full Changelog: v8.3.201...v8.3.202