1.10.1
data-privacy-stack/presidio1.10.1Sep 7, 2026by Borda
Upgrading?
AI Summary
A patch release that enables CUDA compilation support and reduces peak memory usage in segmentation loss training.
Key Highlights
- `compile=True` now actually compiles on CUDA with the default `multi_scale=True` recipe.
- Reduced peak CUDA memory in segmentation loss by sampling ground-truth masks one image at a time.
- Fixed TPU/XLA device sync issues and strategy selection.
- Fixed `point_sample` leaving device on MPS/XLA.
New Features
- CUDA compilation support
- Memory optimization for segmentation loss
- TPU/XLA strategy fixes
- Device sync improvements
Full Release Notes
RF-DETR 1.10.1 is a patch release: `compile=True` now actually reaches CUDA's `torch.compile` path under the default `multi_scale=True` recipe, and peak CUDA memory in segmentation loss drops by sampling ground-truth masks one image at a time. It also carries several device-sync and strategy-selection fixes for the still-experimental, undocumented TPU/XLA training path (tracked under issue #1058) — see Notable Changes below. No breaking changes in this release. ## ✨ Spotlights ### ⚡ `compile=True` now actually compiles on CUDA with the default `multi_scale=True` The compile gate previously excluded multi-scale training, but the exclusion sat behind checks that already required a CUDA device *and* CUDA accelerator — so it only ever blocked the CUDA path, where `dynamic=True` already handles the varying input size. Setting `compile=True` on a default recipe previously logged a notice and trained eagerly instead. ([#1436]; [#1411], shipped in 1.10.0, made compilation reachable in the first place) ```python from rfdetr import RFDETRSmall model = RFDETRSmall() model.train(dataset_dir="...", compile=True) # multi_scale=True by default — now actually compiles on CUDA ``` ### 💾 Reduced peak CUDA memory in segmentation loss For multi-image CUDA batches with boolean ground-truth masks, sampling now happens one image at a time, releasing each image's float masks before the next, instead of concatenating a batch-wide float mask tensor. Narrower inputs (single-image batches, non-CUDA, non-bool masks) keep the prior concat path unchanged. ([#1437]) ## 🔄 Migration guide No breaking changes in this release. One thing to know: if you call `dice_loss_jit` / `sigmoid_ce_loss_jit` directly — not part of the public API, only reachable through `rfdetr.models.lwdetr`'s backward-compat re-exports — most NumPy scalar denominators now need casting to `float` first. See [MIGRATION.md](./MIGRATION.md) for details. ## 📝 Notable changes ### 🔧 Fixed - `compile=True` now takes effect on CUDA with the default `multi_scale=True`, instead of previously logging a notice and training eagerly. Also fixes the now-stale `multi_scale=False` claim in the COCO2017 training cookbook. (#1436; #1411, shipped in 1.10.0, made compilation reachable in the first place) - Reduced peak CUDA memory in segmentation loss by sampling matched ground-truth masks one image at a time, for multi-image CUDA batches with boolean masks. (#1437) - Docs site: the version banner no longer flags the current release as outdated. (#1429) - **TPU/XLA training (experimental, undocumented)**: `point_sample(mode="nearest")` no longer leaves the device on MPS/XLA (#1432, issue #1058); `SetCriterion.loss_masks` no longer syncs its normalizing denominator to the host, with a side effect that `dice_loss_jit`/`sigmoid_ce_loss_jit` — reachable only through `lwdetr.py`'s backward-compat re-exports, not the public API — now reject most NumPy scalar denominators (#1428, issue #1058); `build_trainer` now selects `XLAStrategy` for multi-device XLA/TPU training when `strategy="auto"`, previously a crash at `Trainer` construction, and changes the precision-plugin path for single-device `accelerator="auto"` XLA runs too (#1427, issue #1058); XLA-marked tests pass on real TPU silicon (#1426, issue #1058). ## 🏆 Contributors - **Jesús Royeth** (@JESUSROYETH): all six code/test fixes in this release — the `compile=True`/CUDA multi-scale fix, reduced peak CUDA memory in segmentation loss, and the experimental TPU/XLA device-sync, strategy-selection, and test-suite fixes. - **Jirka Borovec** (@Borda, [LinkedIn](https://linkedin.com/in/jirka-borovec)): fixed the docs-site version banner falsely flagging the current release as outdated, and this release's own prep. ______________________________________________________________________ **Full changelog**: https://github.com/roboflow/rf-detr/compare/1.10.0...1.10.1 [#1058]: https://github.com/roboflow/rf-detr/issues/1058 [#1411]: https://github.com/roboflow/rf-detr/pull/1411 [#1426]: https://github.com/roboflow/rf-detr/pull/1426 [#1427]: https://github.com/roboflow/rf-detr/pull/1427 [#1428]: https://github.com/roboflow/rf-detr/pull/1428 [#1429]: https://github.com/roboflow/rf-detr/pull/1429 [#1432]: https://github.com/roboflow/rf-detr/pull/1432 [#1436]: https://github.com/roboflow/rf-detr/pull/1436 [#1437]: https://github.com/roboflow/rf-detr/pull/1437
Related Repositories
public-apis/public-apis★ 491,128
A collective list of free APIs
NousResearch/hermes-agent★ 255,905
The agent that grows with you
yt-dlp/yt-dlp★ 200,002
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,481
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,700
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.