Skip to content

v0.18.0

Latest

Choose a tag to compare

@liopeer liopeer released this 24 Oct 13:24
0d0ec65

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-eval backend that makes the object detection mAP computation during validation ~5x faster with identical results. Install it with pip install "lightly-train[faster-coco-eval]" and it is used automatically. Select the backend explicitly with metric_args={"map": {"backend": ...}}.
  • Add gradient_accumulation_steps to lightly_train.pretrain(). Known limitation: with gradient_accumulation_steps > 1, the dino and densecl methods 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_ratio and max_ratio: transform_args={"random_resize": {...}} for pretraining and transform_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.5 and 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": ...}. Use gradient_accumulation_steps instead.
  • 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 -notpretrained model names silently loading pretrained weights. Every DINOv3 backbone size now has a working dinov3/<size>-notpretrained-ltdetr and dinov3/<size>-notpretrained-linear model name. Also add dinov2/vits14-noreg-notpretrained-ltdetr.
  • Fix dinov3/<size>-eupe-ltdetr model 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_time and data_wait metrics 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

Full Changelog: v0.17.0...v0.18.0