| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| rfdetr-1.6.4-py3-none-any.whl | 2026-04-10 | 248.3 kB | |
| rfdetr-1.6.4.tar.gz | 2026-04-10 | 213.9 kB | |
| README.md | 2026-04-10 | 3.8 kB | |
| RF-DETR 1.6.4_ custom pretrain_weights source code.tar.gz | 2026-04-10 | 418.5 kB | |
| RF-DETR 1.6.4_ custom pretrain_weights source code.zip | 2026-04-10 | 551.2 kB | |
| Totals: 5 Items | 1.4 MB | 0 | |
🌱 Changed
-
Class names on predictions.
predict()now includesclass_namein the returneddetections.datadict, mapping each detection's 0-indexed class ID to its human-readable name. No more manual lookups. (#914)python model = RFDETRSmall(pretrain_weights="path/to/fine_tuned.pth") detections = model.predict("image.jpg", threshold=0.5) print(detections.data["class_name"]) # ["cat", "dog", "cat"]
đź”§ Fixed
-
Fixed segmentation training crashing on multi-GPU DDP setups. The segmentation head leaves some parameters unused on certain forward steps, which triggered
RuntimeError: parameters that were not used in producing the loss.build_trainer()now automatically enablesfind_unused_parameters=Truewhensegmentation_head=True. (#947) -
Fixed fused AdamW optimizer crash during FP32 multi-GPU training. On Ampere+ GPUs, fused AdamW was enabled whenever the hardware supported BF16 — even when the trainer was explicitly configured for
precision="32-true". This caused a dtype mismatch in DDP gradient buckets. The optimizer now checks the trainer's actual precision setting, not just GPU capability. (#947) -
Fixed multi-GPU DDP training failing in Jupyter notebooks and Kaggle. Fork-based DDP corrupted PyTorch's OpenMP thread pool, causing
SIGABRTon the second process. RF-DETR now uses a spawn-based DDP strategy in interactive environments, avoiding the thread pool issue entirely. (#928) -
Fixed
RFDETR.train(resolution=...)being silently ignored. Theresolutionkwarg is a model-level setting, not a training config field, so it was quietly dropped. It is now applied to the model config before training begins, with validation that the value is divisible bypatch_size * num_windows. (#933)python model = RFDETRSmall() model.train(dataset_dir="./dataset", resolution=768) # now works -
Fixed
save_dataset_gridsbeing silently a no-op. The grid saver was never wired into the training loop. Dataset sample grids are now saved to{output_dir}/dataset_grids/when enabled. Grid save failures are caught and logged without interrupting training. (#946) -
Fixed partial gradient-accumulation windows at the end of training epochs. When the dataset length was not evenly divisible by
effective_batch_size * world_size, PyTorch Lightning would fire the optimizer on an incomplete accumulation window. The training dataset is now padded to an exact multiple, ensuring every optimizer step uses a full gradient window. (#937) -
Fixed
torch.export.exportfailing on the transformer decoder. Thespatial_shapes_hwparameter was not threaded through the decoder layers, breaking export for models using multi-scale deformable attention. (#936) -
Fixed
download_pretrain_weights()silently overwriting fine-tuned checkpoints. When a fine-tuned checkpoint shared a filename with a registry model (e.g.rf-detr-nano.pth), an MD5 mismatch would trigger a re-download that replaced the user's weights. The function now returns early when the file exists andredownload=False, emitting a warning instead. (#935)
🏆 Contributors
Welcome to our new contributors, and thank you to everyone who helped with this release:
- M. Fazri Nizar (@mfazrinizar) (LinkedIn) — multi-GPU DDP training in notebooks
- Jiahao Sun (@sjhddh) (LinkedIn) — config type hint fix
- Jirka Borovec (@Borda) (LinkedIn) — release coordination, reviews
Automated contributions: @copilot-swe-agent[bot], @pre-commit-ci[bot]
Full changelog: https://github.com/roboflow/rf-detr/compare/1.6.3...1.6.4