Repository navigation
Added
- Add C++ inference recipes for LT-DETR object detection with ONNX Runtime (CUDA execution provider) and TensorRT, both with zero-copy GPU input/output.
- Add export and inference examples for LT-DETR object detection with MIGraphX on AMD GPUs.
- Add multi-scale feature support to torchvision (ResNet, ConvNeXt, ShuffleNetV2) and ECViT backbones. The torchvision backbones are now available for linear semantic segmentation, for example with
model="torchvision/resnet50-linear". - Add an optional
faster-coco-evalbackend that makes the object detection mAP computation during validation ~5x faster with identical results. Install it withpip install "lightly-train[faster-coco-eval]"and it is used automatically. Select the backend explicitly withmetric_args={"map": {"backend": ...}}. - Add
gradient_accumulation_stepstolightly_train.pretrain(). Known limitation: withgradient_accumulation_steps > 1, thedinoanddenseclmethods update their teacher/key encoder, center, and queues on every micro-batch instead of once per optimizer step. - Add opt-in activation checkpointing for DINOv2, DINOv3, and ECViT backbones during pretraining with
activation_checkpoint_args={"enabled": True}. Reduces peak GPU memory by ~30% on ViT-S/14. - Make the aspect ratio range of the random resized crop configurable with
min_ratioandmax_ratio:transform_args={"random_resize": {...}}for pretraining andtransform_args={"random_crop": {...}}for classification fine-tuning. The default stays(3 / 4, 4 / 3). - Restore the DINOv3.1 pretraining method.
Changed
- Fine-tuning now requires
torchmetrics>=1.5and fails with a clear error otherwise, for example when SuperGradients is installed. Object detection previously ran on older versions but reported mAP from an outdated implementation that does not match COCO eval. - Pretraining now raises an error for
trainer_args={"accumulate_grad_batches": ...}. Usegradient_accumulation_stepsinstead. - The licensing docs and the license notice stored in checkpoints and ONNX exports now state that AGPL-3.0 also covers trained model weights.
Fixed
- Fix DINOv3
-notpretrainedmodel names silently loading pretrained weights. Every DINOv3 backbone size now has a workingdinov3/<size>-notpretrained-ltdetranddinov3/<size>-notpretrained-linearmodel name. Also adddinov2/vits14-noreg-notpretrained-ltdetr. - Fix
dinov3/<size>-eupe-ltdetrmodel names loading non-EUPE weights. - Fix
transform_args={"random_resize": None}during pretraining still center cropping images that are not roughly square. - Fix
data_time,batch_timeanddata_waitmetrics on CUDA. - Support the timm model families added in timm 1.0.29 and 1.0.30 (
cpubone,lowformer,lcnetv2,deepseek_vit,qwen3_vit,iformer,efficientvim).
What's Changed
- Add C++ inference recipes for LT-DETR object detection by @gabrielfruet in #909
- Make dinov31 available again by @liopeer in #920
- Update object detection benchmark plot by @gabrielfruet in #923
- MIGraphX Support by @liopeer in #912
- Add gradient_accumulation_steps to pretrain/train API by @tetelias in #743
- Add activation checkpointing for ViT backbones by @XAheli in #930
- Fix broken "Monitor training progress" docs link by @minutechreview in #934
- Fix LT-DETRv2-S mAP in object detection benchmark plot by @gabrielfruet in #938
- Fix misleading data_time / batch_time / data_wait metrics on CUDA (async bleed-through) by @DLemming in #749
- Fix remaining broken pretrain_distill docs links by @minutechreview in #940
- Speed up validation mAP with an optional faster-coco-eval backend by @liopeer in #946
- ci: enforce Conventional Commits on pull request titles by @liopeer in #952
- ci: fix path filters so non-code PRs skip the expensive jobs by @liopeer in #953
- perf(tests): speed up unit test CI by fixing root causes by @liopeer in #954
- fix(timm): map new timm 1.0.29 model families by @liopeer in #961
- feat(transforms): expose ratio for random resized crop by @hajar-benhadj in #960
- docs: clarify Vision Foundry is independent related work by @minutechreview in #975
- docs(licensing): state that AGPL-3.0 covers trained model weights by @liopeer in #976
- fix(dinov3): fix and add missing LT-DETR -notpretrained backbone aliases by @minutechreview in #962
- feat(torchvision): add multi-scale feature support to ResNet and ConvNeXt backbones by @lorinczszabolcs in #972
- feat(ecvit): add multi-scale feature support by @lorinczszabolcs in #950
- fix(dinov3): wire LT-DETR -eupe aliases to EUPE backbones by @Parsiffall1 in #981
- fix(timm): add arch name prefixes for new timm model families by @liopeer in #986
- chore(release): LightlyTrain 0.18.0 by @liopeer in #990
New Contributors
- @tetelias made their first contribution in #743
- @XAheli made their first contribution in #930
- @minutechreview made their first contribution in #934
- @DLemming made their first contribution in #749
- @hajar-benhadj made their first contribution in #960
- @lorinczszabolcs made their first contribution in #972
- @Parsiffall1 made their first contribution in #981
Full Changelog: v0.17.0...v0.18.0