Recent Releases of lightly

lightly - v1.15.22

What's Changed

  • Speed up function _same_mask in DetConBLoss by 25% by @misrasaurabh1 in https://github.com/lightly-ai/lightly/pull/1847
  • Fix DINOv2 Bugs
  • Add DINOv2 to Docs with Example
  • Fix: vicregl_loss tensor RuntimeError by @RDR2Blackwater in https://github.com/lightly-ai/lightly/pull/1850
  • Add iBOTTransform
  • Add iBOT Implementation
  • Add iBOT to Docs with Example
  • Fix KNN dtype for ResNet benchmark
  • Fix CUDA Tests for Losses
  • Fix OnlineClassifier Issues
  • Support Tensor Input for GaussianBlur
  • Use ToTensor Helper Function by @ajtritt in https://github.com/lightly-ai/lightly/pull/1862
  • Move Rotation After Flip for Transforms by @KylevdLangemheen in https://github.com/lightly-ai/lightly/pull/1865
  • Improve pre-commit hooks for Dev Env
  • Add iBOT Benchmarks

New Contributors

  • @misrasaurabh1 made their first contribution in https://github.com/lightly-ai/lightly/pull/1847
  • @RDR2Blackwater made their first contribution in https://github.com/lightly-ai/lightly/pull/1850
  • @ajtritt made their first contribution in https://github.com/lightly-ai/lightly/pull/1862
  • @KylevdLangemheen made their first contribution in https://github.com/lightly-ai/lightly/pull/1865

Full Changelog: https://github.com/lightly-ai/lightly/compare/v1.15.21...v1.15.22

Many thanks to our contributors!

Models

- Python
Published by yutong-xiang-97 7 months ago

lightly - v1.15.21

What's Changed

  • Add DINOv2 ViT benchmark Implementation
  • Add Paper Joint-Embedding vs Reconstruction: Provable Benefits of Latent Space Prediction for Self-Supervised Learning, 2025 by Meta to "Lightly in Research". Thank them for the credit!
  • Add seed_everything for reproducibility in benchmarks by @yvesyue in https://github.com/lightly-ai/lightly/pull/1819
  • Fix MyPy type-checking issues for newer versions of NumPy by @yvesyue in https://github.com/lightly-ai/lightly/pull/1820
  • Fix DCLLoss negative-term aggregation and add loop-based reference test by @yvesyue in https://github.com/lightly-ai/lightly/pull/1827
  • Fix bugs in KNN benchmark evaluation
  • Fix bugs in cosine scheduler warmup epochs
  • Fix MaskedCausalBlock.__init__() got an unexpected keyword argument 'proj_bias' due to interface change in the newer TIMM versions
  • Fix AddGridTransform due to interface change in the newer Torchvision versions
  • Fix format & format-check to only target python directories
  • Remove video download functions
  • Remove unused download functions & add typing

New Contributors

  • @yvesyue made their first contribution in https://github.com/lightly-ai/lightly/pull/1819

Full Changelog: https://github.com/lightly-ai/lightly/compare/v1.5.20...v1.15.21

Many thanks to our contributors!

Models

- Python
Published by yutong-xiang-97 9 months ago

lightly - v1.5.20

Changes

  • Added DINO ViT Benchmark
  • Fixed BTLoss: ensure invariance to affine transformations by @adosar in https://github.com/lightly-ai/lightly/pull/1806
  • Tested BTLoss: use default values for torch.allclose by @adosar in https://github.com/lightly-ai/lightly/pull/1810
  • Added more detailed docstring to knn predict by @maxprogrammer007 in https://github.com/lightly-ai/lightly/pull/1812
  • Removed verbose in CosineWarmUpScheduler
  • Add LightlyTrain Reference
  • Renamed lightly-train command to lightly-ssl-train

Many thanks to our contributors!

Models

- Python
Published by yutong-xiang-97 10 months ago

lightly - v1.5.19

Updates to the Model Documentations and addition of MACL Loss

Changes

  • Docs: Fix mismatch between forward method and docstring of NTXentLoss by @adosar in https://github.com/lightly-ai/lightly/pull/1789
  • Update NNCLR model examples in docs
  • Updated the BYOL model examples in docs
  • Updated the DINO model examples in docs
  • Update the SimSiam model examples in docs
  • Additional tests added to pooling operation for DetCon
  • Fix issues with the Lightning Trainer's strategy in the MAE examples and support new Lightning versions in the benchmarks
  • Added loss function for MACL (Model-Aware Contrastive Learning)
  • Updated CONTRIBUTING Guide and GitHub Actions
  • Fix multiple issues with loss tests

Models

- Python
Published by liopeer about 1 year ago

lightly - update SimCLR and MAE model docs

What's Changed

  • Update SimCLR model model example
  • Update MAE model docs
  • adjust pagination to be defensive at 2500 entries
  • Fix typo: Dict() instead of dict() return class instanciation error by @gatienc in https://github.com/lightly-ai/lightly/pull/1785

Many thanks to all of our contributors!

Models

- Python
Published by japrescott about 1 year ago

lightly - cleanup & detcon loss fix

Changes

  • fix detcon loss distributed issue
  • remove heuristics in masked pooling
  • fix torchvision dependency test

Many thanks to all of our contributors!

Models

- Python
Published by japrescott about 1 year ago

lightly - DetCon and typings

Changes

  • Added DetConSLoss and DetConBLoss
  • removed opencv dependencies partial thanks to @vectorvp
  • fix: IJEPA example by thanks to @vectorvp

Typing and Docs

  • Many files are now properly typed and type-checked thanks to @philippmwirth
  • We removed old and outdated documentation regarding the LightlyOne Worker

Many thanks to all of our contributors!

Models

- Python
Published by japrescott about 1 year ago

lightly - More and better Transforms

Changes

New transforms

  • Add PhaseShift Transform (#1714) by @pearguacamole
  • Add FDATransform (#1734) by @vectorvp

Switch to version-independent torchvision transforms.

  • If torchvision transforms v2 are available, they are used. Otherwise torchvision transforms v1 are used. For details see this comment.
  • Add Transform for DetCon + MultiViewTransformV2 for torchvision.transforms.v2 (#1737)

Typing, naming & docstring improvements

  • Type data/_utils(#1740), data/_helpers (#1742) and tests/models (#1744) by @vectorvp
  • Cleanup: docstrings in the lightly/data subpackage (#1741) by @ChiragAgg5k
  • Refactor: Update naming and remove unused package from AmplitudeRescaleTransform (#1732) by @vectorvp

Other

  • Fix DINOProjectionHead BatchNorm Handling (#1729)
  • Add masked average pooling for pooling with segmentation masks (DetCon)(#1739)

Many thanks to all of our contributors!

Models

- Python
Published by MalteEbner about 1 year ago

lightly - More Transforms, Typing and Docs Improvements

Changes

New transforms

Added and updated docstrings

  • Many improvements by @Prathamesh010, @ayush22iitbhu, @ChiragAgg5k @HarshitVashisht11

Docs improvements

  • Improvements of the README.md @bhargavshirin and @kushal34712 @eltociear @Mefisto04 @ayush22iitbhu
  • Improvements of other parts of the the docs and tutorials @jizhang02
  • Fix examples on Windows @snehilchatterjee
  • Improve CONTRIBUTING.md @Prathamesh010
  • Added a back to top button for easier navigation @hackit-coder

More and better typing

  • Testing typing for all python versions
  • Typing of serve.py @ishaanagw
  • Cleanup: _image.py and _utils.py file in data subpackage @ChiragAgg5k

Better formatting

  • Move classes and public functions to top of file @fadkeabhi and @SauravMaheshkar

Other

Many thanks to all of our contributors!

Models

- Python
Published by MalteEbner over 1 year ago

lightly - Support python 3.12

  • Support python 3.12, thanks @MalteEbner
  • update cosine warmup scheduler, thanks @guarin

Models

- Python
Published by japrescott over 1 year ago

lightly - enhanced library compatibility

  • Use TiCoTransform Everywhere
  • Refactor DINOLoss to not use center module
  • Add CenterCrop to val transform

Dependencies

  • Make library compatible with torch 1.10, torchvision 0.11, and pytorch lightning 1.6 (by using uv), thanks @guarin

Docs

  • Add notebooks, thanks @SauravMaheshkar
  • Add Timm Backbone Tutorial, thanks @SauravMaheshkar
  • Further docs and tutorial improvements

Models

- Python
Published by japrescott over 1 year ago

lightly - NumPy 2 support and new IBOTPatchLoss, KoLeoLoss

  • Added IBOTPatchLoss, KoLeoLoss and block masking, thanks @guarin
  • Allow learnable positional embeddings and boolean masking in masked vision transformer
  • Refactor IJEPA to use timm, thanks @radiradev

Dependencies

  • Allow NumPy 2, thanks @adamjstewart
  • Removed lightning-bolts dependency

Docs

  • Add finetuning tutorial, thanks @SauravMaheshkar
  • Fix MoCo link in DenseCL docs and further docs and tutorial improvements

Models

- Python
Published by japrescott over 1 year ago

lightly - DenseCL, SSL model improvements

  • Adds the DenseCL: Dense Contrastive Learning for Self-Supervised Visual Pre-Training method. See the docs.
  • Add TiCoTransform, thanks @radiradev!
  • Improvements to the pre-commit hooks, thanks @SauravMaheshkar!
  • Fix memory bank issue when using gather_distributed=True and training on a single GPU
  • Fix student head update in DINO benchmark
  • Various improvements to MaskedVisionTransformer
  • Renaming of Lightly SSL to LightlySSL

Models

- Python
Published by MalteEbner over 1 year ago

lightly - pydantic2 compatibility

  • Lightly is now compatible with pydantic2
  • migrated to pyproject

Models

- Python
Published by japrescott over 1 year ago

lightly - Numpy version compatibility

Two changes w.r.t numpy version 2: - Make lightly itself support numpy version 2: https://github.com/lightly-ai/lightly/pull/1561 - Disallow numpy 2.0 in the requirements, as torchvision is not yet compatible with numpy 2: https://github.com/lightly-ai/lightly/pull/1562

For more context, see https://github.com/lightly-ai/lightly/issues/1558

Models

- Python
Published by MalteEbner over 1 year ago

lightly - v1.5.7

Tiny improvements * Increase download timeout for json files (#1556) * Migrate coverage and mypy configuration to pyproject.toml #1549). Many thanks to @SauravMaheshkar for this improvement!

Models

- Python
Published by MalteEbner over 1 year ago

lightly -

Changes * Allow lightly-serve to run securely via https by passing sslcert and sslkey

Models

- Python
Published by japrescott over 1 year ago

lightly - Add unpatchify model utils operation

Changes * Add unpatchify model utils operation to reconstruct an image from its patches. See the PR for more information. Thanks to @randombenj for implementing this! * Fixes in CI regarding coverage. * Fixes in lightly-serve that the server was sometimes not shut down correctly.

Models

- Python
Published by MalteEbner over 1 year ago

lightly - Multi-GPU

Changes * Fixes the GatherLayer for multiple GPUs. See PR for more information. * Different typos in tutorials

Models

- Python
Published by japrescott almost 2 years ago

lightly - UX improvements

Changes * Removed the hydra warning when using lightly-serve * Improved the error messages and formatting of "well known" errors to improve the readability

Models

- Python
Published by japrescott almost 2 years ago

lightly - Better docs for MAE and TIMM

Changes * add benchmark results for MAE * add timm version info to docs

Models

- Python
Published by MalteEbner almost 2 years ago

lightly - MAE to use TIMM VIT

Changes * Refactor MAE to use TIMM VIT * Add AIM examples and docs * Updated BYOL and MOCO benchmarks * Use MMCRProjectionHead in examples

Models

- Python
Published by japrescott almost 2 years ago

lightly - Schedule Lightly Worker jobs with config version v4

This release includes some breaking changes for users of Lightly Worker.

Breaking Changes * Jobs are now scheduled with config v4 and require Lightly Worker 2.11 (breaking).

Changes * Add mmcr projection head (thanks @LukeSutor ) * Update argument type hints where the default is set to None to use Optional (thanks @otavioon) * Fix TiCoLoss (thanks @guarin ) * Add timm version check * fix parsing and caching issues with lightly-serve * allow to use lightly behind a proxy by setting HTTPS_PROXY and LIGHTLY_CA_CERTS

Models

- Python
Published by japrescott about 2 years ago

lightly - AIM Model and EMP-SSL Loss

Changes

Models

- Python
Published by ersi-lightly about 2 years ago

lightly - W-MSE Loss and Transform

Changes

  • Add MoCoV2 ImageNet benchmarks.
  • Make KNN feature normalization optional.
  • Implement W-MSE Loss and Transform (thanks @johnsutor).
  • Update generated specs with datasource expiration.

Models

- Python
Published by philippmwirth about 2 years ago

lightly - MMCR

Changes

  • Add MMCR loss and transform in https://github.com/lightly-ai/lightly/pull/1446. Thanks to @johnsutor!
  • Update README to reflect correct import for LightlyDataset in https://github.com/lightly-ai/lightly/pull/1437. Thanks to @dnth!
  • Fix MoCoV2 transform parameters in https://github.com/lightly-ai/lightly/pull/1441
  • Set model to eval for benchmark knn and linear classification in https://github.com/lightly-ai/lightly/pull/1444
  • Remove extra mean calculation in VICRegLoss in https://github.com/lightly-ai/lightly/pull/1450. Thanks to @RylanSchaeffer for pointing out the issue!
  • Fix MultiCropTransform cropmaxscales check in https://github.com/lightly-ai/lightly/pull/1454. Thanks to @Djoels for pointing out the issue!

Models

- Python
Published by guarin about 2 years ago

lightly - Typecheck part of models

Changes

  • Typecheck part of models
  • Polish benchmarks page
  • Update specs

Models

- Python
Published by michal-lightly about 2 years ago

lightly - Typecheck part of utils

Changes

  • Typecheck part of utils
  • Add ability to download the new reportv2.json
  • Update specs

Models

- Python
Published by japrescott over 2 years ago

lightly - Cyclic Cosine Scheduler

Changes

  • Add period argument to CosineWarmupScheduler #1413, thanks to @JannikWirtz!

Models

- Python
Published by guarin over 2 years ago

lightly - Documentation Improvements

Changes

  • Small improvements to documentation
  • Added types to embedding scripts (kudos to @agpeshal!)
  • Fix: Handle OPTIONS method for lightly-serve script

Models

- Python
Published by michal-lightly over 2 years ago

lightly - VICReg benchmarks on Imagenet

Changes

  • We have evaluated our VICReg implementation on Imagenet (check it out).
  • Docs update to emphasize difference between Lightly SSL and the company.
  • Allow filenames with commas in embedding files and datasets.
  • Fix: Imagenet benchmarks memory problems.

Models

- Python
Published by philippmwirth over 2 years ago

lightly - Types!

Changes

  • Add mypy and type the package partially (#1382). lightly.transforms is fully typed. We'll gradually add types for the other modules.
  • Add py.typed files for typed parts of the package (#1382). This makes types available when working with lightly from other codebases.
  • Add support to resume benchmark training (#1347). Thanks a lot to @sadimanna!
  • Remove docs for outdated/internal API methods (#1385).
  • Make the relative_path argument optional when scheduling a Lightly Worker run with local storage (#1384).

Models

- Python
Published by guarin over 2 years ago

lightly - BarlowTwins Benchmark on ImageNet

Changes

  • Added a new benchmark of BarlowTwins on ImageNet.
  • Optimized performance of the BarlowTwinsLoss computation, making it much faster
  • Fixed a bug in the CosineWarmupScheduler. Thanks to @anishacharya for pointing out the problem.
  • Cleaned the setup.py

Models

- Python
Published by MalteEbner over 2 years ago

lightly - Lightly Local Workflow

Changes

  • Prepare for local workflow support:
    • add lightly-serve command
    • regenerate specs
  • Fix docstrings

Models

- Python
Published by japrescott over 2 years ago

lightly - Patch generated API client

Changes

  • Patch generated API client.

Models

- Python
Published by philippmwirth over 2 years ago

lightly - BYOLTransform

Changes

  • Add BYOLTransform which replaces SimCLRTransform in BYOL benchmarks.
  • Log benchmark results only on rank0.
  • Fix bug in PMSNLoss where probabilities were not converted to log-space before the loss calculation. Thanks to @Cloudy1225 for reporting this!
  • Version check now runs in background and no longer requires SIGALRM.
  • Add support for scheduling Lightly Worker runs with the new selection strategy strength option.

Models

- Python
Published by guarin over 2 years ago

lightly - I-JEPA

Changes

  • Basic support for I-JEPA (thanks to @Natyren!)
  • add BYOL imagenet resnet50 benchmark

Models

- Python
Published by japrescott over 2 years ago

lightly - Paginate API client endpoints

Changes

  • Paginate API client endpoints
  • Cleaned up API client codebase

Models

- Python
Published by michal-lightly over 2 years ago

lightly - Remove prefetch-generator

Changes

  • Remove prefetch_generator as this is supported natively by PyTorch 1.7 and higher.
  • Improve error messages for scheduled jobs with invalid configurations.
  • Correctly create SelectionConfig with repeated object references.

Models

- Python
Published by philippmwirth over 2 years ago

lightly - SimCLR with finetuning benchmark

Changes

  • updates SimCLR benchmark results with finetuning added
  • fixes swav imagenet benchmark
  • it is now possible to fetch team datasets

Models

- Python
Published by shaundaley39 over 2 years ago

lightly - DINO ResNet50 benchmarks

Changes

  • Add benchmarks of the DINO model using a ResNet50 backbone #1254
  • openapi: setuptools not required at run-time #1289 Thanks to @adamjstewart for making this fix!

Models

- Python
Published by MalteEbner over 2 years ago

lightly - New API Generator

Changes

  • Update generated API code to use openapi-generator instead of swagger-codegen (#1271, #1275, #1276, #1281)
    • This allows use to better validate API requests and detect issues earlier
  • Update tutorials to use transforms instead of collate functions #1277
  • Add reference in README to the Reverse Engineering Self-Supervised Learning paper which uses Lightly #1278
  • Fix examples to work with LightlyDataset #1280

Models

- Python
Published by guarin over 2 years ago

lightly - Benchmarks and deprecated code removal

Changes

  • SwAV ImageNet benchmark have been added (#1231)
  • VicRegL Vertical Flip Probability (#1266) thanks to @iamharsha1999
  • The multiviewcollate is now replaced with default collate (#1262)
  • Docstrings have been updated
  • We have removed deprecated code for active learning (#1251) and recommend to use our more powerful approach to active learning as outlined in one or our tutorials
  • We have removed deprecated lightly-upload code (#1247)

Models

- Python
Published by japrescott over 2 years ago

lightly - Small fixes

Changes

  • Fix torch.distributed import in vicregl_loss.py (#1239)
  • API Client: remove default querytagname from ApiWorkflowClient.upload_scores (#1243)

Models

- Python
Published by huan-lightly-0 almost 3 years ago

lightly - SimCLR ImageNet benchmark and improved documentation

Changes

  • add benchmark for SimCLR ImageNet
  • API client improvements: sample creation with write URLs, handling of relevant filenames, support for num_processes and num_threads
  • documentation improvements: a cleanup of the README, new overview chart and better links

Models

- Python
Published by shaundaley39 almost 3 years ago

lightly - MocoV3 and better support for distributed

Changes

  • add support for MoCoV3 projection head. Thanks to @adamjstewart
  • better support for distributed training: Better error messages and bugfixes
  • updated benchmark results on Cifar10

Models

- Python
Published by MalteEbner almost 3 years ago

lightly - SimCLRV2 Projection Head

Changes

  • Add support for SimCLRV2 projection head. Thanks to @adamjstewart!
  • Add by default BatchNorm layers to SimCLR projection head. Thanks to @adamjstewart!

Models

- Python
Published by guarin almost 3 years ago

lightly - pytorch 2.0 compatibility

Changes

  • Lightly is now compatible with PyTorch 2.0 (but Lightly itself does not use it, yet)
  • It's now possible to install Lightly "lightly" by only installing the parts necessary for API communication
  • Support newer setuptools (Thanks @adamjstewart ! )
  • Added missing config options
  • Improved docstrings and document potential API errors

Models

- Python
Published by japrescott almost 3 years ago

lightly - FastSiam

Changes

Models

- Python
Published by philippmwirth almost 3 years ago

lightly - Schedule Lightly Worker jobs with config version v3

This release includes some breaking changes for users of Lightly Worker.

Breaking Changes - Jobs are now scheduled with config v3 for Lightly Worker 2.6 (breaking). - Remove object_level config option (breaking).

Changes - Automate release using Github actions - Split ApiWorkflowClient download and export functionality - Preparation for instance segmentation support

Models

- Python
Published by michal-lightly almost 3 years ago

lightly - Prior Matching for Siamese Networks

Changes

  • New PMSN model: Prior Matching for Siamese Networks, 2022.
  • Add deprecation warning for active learning workflow.
  • Add deprecation warning for collate functions.
  • Remove deprecated documentation.
  • Refactor use of transforms.

Models

- Python
Published by shaundaley39 almost 3 years ago

lightly - Pytorch Lightning 2.0 Compatibility and fixes

Pytorch Lighting 2.0 Compatibility

Pytorch Lightning introduced breaking changes in the ways devices and accelerators are specified. We updated the code and example models to reflect that. For details, see the PR.

Benchmarks now use transforms

The benchmarks now do the augmentations (e.g. colour jitter) in the dataset transform instead of the collate function of the dataloader and have been updated. For details, see the PR

Other changes.

  • The ApiWorkflowClient is now pickable, improving multithreading capabilities.
  • The LabelBox export now supports LabelBox format v4.
  • Smaller fixes for a better user experience.

Models

- Python
Published by MalteEbner almost 3 years ago

lightly - Better Lightly Worker job validation and fixes

Changes

  • Raise error when trying to schedule a Lightly Worker job with unknown configuration arguments.
  • Add get_compute_worker_run_checkpoint_url method to ApiWorkflowClient, allowing to access a pretrained checkpoint from the Lightly Worker by URL.
  • Fix error in Lightly version check on Windows.
  • Remove deprecated PytorchLightning progress_bar_refresh_rate trainer argument in tutorials.
  • Make Masked Autoencoder work with half-precision training.

Other

  • The lightly package is now formatted using the black code formatter and isort.

Models

- Python
Published by guarin almost 3 years ago

lightly - torch(vision) and lightly.api independence

This release includes some breaking changes, especially for our users of the the Lightly Worker Please follow the migration guide to see version compatibility.

Breaking Changes

  • Make lightly.api independent of torch(vision) (breaking).
  • Validate the config created by the api (breaking).
  • Fix scheduling jobs with config v2 (breaking).

Changes

  • Add benchmarks results with new GaussianBlur implementation.
  • Add transforms for all SSL models.
  • Remove extra pooling layers from benchmarks.

Other

  • Set creator on various endpoints in pip.

Models

- Python
Published by japrescott almost 3 years ago

lightly - Deprecate Gaussian blur scale and kernel_size

Changes

  • Add deprecation warning for GaussianBlur scale and kernel_size.
  • Raise an error for an unsuccessful json download.
  • Enable OBS datasource configurations.
  • Update generated api code.

Models

- Python
Published by philippmwirth about 3 years ago

lightly - Better SSL schedulers, benchmarks for TiCo and VicRegl

Changes

Models

- Python
Published by MalteEbner about 3 years ago

lightly - TiCo and VICRegL

Changes

  • New TiCo model.
  • New VICRegL model.
  • API Client extended with listdatasourcepermissions.
  • Bug fix generalizing SMoGProjectionHead. Thanks @DrIsDr!
  • Added version compatibility check.

Models

- Python
Published by shaundaley39 about 3 years ago

lightly - SMoG

SMoG: Unsupervised Visual Representation Learning by Synchronous Momentum Grouping

Lightly 1.2.30 comes with the SMoG model introduced in Unsupervised Visual Representation Learning by Synchronous Momentum Grouping. Documentation and benchmarks will be released soon.

Breaking Change

  • in the ApiWorkflowClient, create_dataset now throws an error where a dataset of the same name already exists. To reuse an existing dataset users should switch to using setdatasetidbyname.

Other Changes

  • OBS (object storage service) remote datasources now supported
  • documentation improvements

Models

- Python
Published by shaundaley39 over 3 years ago

lightly - Masked Autoencoder, SSL debug utilities

Masked Autoencoders

We implemented the paper Masked Autoencoders Are Scalable Vision Learners. https://arxiv.org/abs/2111.06377 is suggesting that a masked auto-encoder (similar to pre-training on NLP) works very well as a pretext task for self-supervised learning. See https://github.com/lightly-ai/lightly/issues/721 for more details. Thanks to @Atharva-Phatak for helping us figure out a good implementation method.

Collapse detection helper for SimSiam

We added a helper for detecting a collapsing SimSiam network. See https://ar5iv.labs.arxiv.org/html/2011.10566#S4.SS1 for more details.

Plot positive and negative example images

We added a helper to plot positive and negative example images, which also allows seeing what the augmentations do. See https://github.com/lightly-ai/lightly/pull/818 for more details.

Models

- Python
Published by MalteEbner over 3 years ago

lightly - Video Dataset initialisation improvements

Video Dataset initialisation speedup

When initialising a LightlyDataset on a directory with videos, all frames in all videos have to be counted to know the number of frames in the dataset and their filenames. This process now uses multihreading over videos and can thus be much faster.

Video Dataset initialisation bugfix

We fixed a bug that the number of frames was estimated wrongly based on the length of the video when using the pyav backend.

Video Dataset initialisation progress bar

When initialising the video dataset, a progress bar over the videos is shown. This is helpful information for datasets with many videos.

Models

- Python
Published by MalteEbner almost 4 years ago

lightly - Decoupled Contrastive Learning, Model heads with default parameters

Decoupled Contrastive Learning

We have implemented the Decoupled Contrastive Learning (DCL) loss. It allows faster training with smaller batch sizes than other self-supervised learning models.

Documentation: https://docs.lightly.ai/examples/dcl.html Decoupled Contrastive Learning paper: https://arxiv.org/abs/2110.06848

Model heads with default parameters

All model heads have now default parameters following the values of the original papers.

Create custom metadata config

Custom metadata in the Lightly Platform can now easily be configured via ApiWorkflowClient.create_custom_metadata_config()

Progress bar for video dataset initialization

Constructing a LightlyDataset with large video datasets can take long, as all frames in all videos have to be counted. We added a tqdm progress bar for it.

Models

- Python
Published by MalteEbner almost 4 years ago

lightly - Improved Video Loading

Improved Video Loading

Loading frames from videos was updated and we now verify that the timestamp of the loaded frame is correct. This fixes a bug where sometimes a frame with a different timestamp than the one requested by the user was loaded. Lightly will now also warn you if the correct frame could not be found.

Documentation Updates

We added many documentation updates on how you can use and interact with the Lightly Platform.

Models

- Python
Published by guarin almost 4 years ago

lightly - Improved embedding progress bar, Label export, Docs improvements

Improved embedding progress bar, Export to Label, Docs improvements

Improved embedding progress bar

The embedding progress bar now shows the number of embedded images instead of embedded batches.

Label export

You can now use the ApiWorkflowClient to export data from the LightlyPlatform as a .json file to be imported into a label tool.

Docs improvements

Some errors in the docs have been fixed.

Models

- Python
Published by MalteEbner almost 4 years ago

lightly - DINO tricks, Imagenette benchmarks, API improvements

DINO tricks, Imagenette benchmarks, API improvements

DINO tricks

DINOHead now allows to freeze the last layer which stabilizes the model performance. DINOHead now also allows to normalise the last layer. This was implemented by @Atharva-Phatak. Thank you very much!

Imagenette benchmarks

We now include benchmarks of all models on Imagenette.

API Improvements

Better documentation of custom metadata

The CLI command to upload custom metadata is now included in the command line tool examples.

Better dataset upsizing

Upsizing a dataset in the Lightly Platform by adding more samples to it now cannot happen accidentally anymore, instead you have to specify append=True. Furthermore, bugs regarding appending new custom metadata have been fixed.

Create ApiWorkflowClient with token from env

When creating an ApiWorkflowClient, you can now pass the token as environment variable LIGHTLY_TOKEN instead of as argument.

Bugfixes in check_embeddings()

When checking embedding files, now columns like masked and selected are accounted for properly.

Models

- Python
Published by MalteEbner almost 4 years ago

lightly - Active Learning for Keypoint Detection and New API Workflows

Active Learning for Keypoint Detection and New API Workflows

Active Learning: Keypoint Detection

#707 added an active learning scorer for keypoint detection. This means that you can now do active learning for keypoint detection with Lightly!

New API Workflows

With #712 and #714 we added all the necessities to configure and run the compute worker from your Python code.

Access Shared Datasets

722 makes it possible to access datasets which were shared with you in the Lightly web-app from your Python code as if they were your own.

Documentation

We made many smaller changes and fixes in the docs 🙂

Models

- Python
Published by philippmwirth almost 4 years ago

lightly - Bugfixes and Documentation Improvements

Bugfixes and Documentation Improvements

Bugfix in trainmodelandembedimages()

Fixed the bug that the train_model_and_embed_images() function did not return the embeddings, filenames and labels. Thanks for finding this bug @opassos!

Bugfix in video loader

When using the video_loader backend of torchvision, it could fail when training for multiple epochs and had a linearly growing demand for memory and file handlers. This was fixed.

Documentation update in Readme.md

The benchmark table for CIFAR10 was fixed and the DINO model added to the list of supported models.

Models

- Python
Published by MalteEbner almost 4 years ago

lightly - DINO and Updated Benchmarks

DINO:

We added support for the DINO model which works with ResNet and Transformer backbones! To get started head over to our examples section in the docs which contains example code for DINO using PyTorch and PyTorch Lightning.

Update Cifar10 Benchmarks

We updated the Cifar10 benchmarks with results for all models provided by Lightly. The benchmark does now only use low level blocks which we introduced in a previous release. You can find the updated benchmark results and code in our docs.

Models

- Python
Published by guarin almost 4 years ago

lightly - Faster Upload and more API methods

Faster Image Upload

When uploading images through the CLI interface we now by default use 8-32 threads to speed up the process. This setting can be controlled with using the loader.num_workers argument.

Create Tags from Filenames

The ApiWorkflowClient now has a create_tag_from_filenames method which allows you easily to create a new tag on the Lightly Platform by passing a list of filenames.

Updated Visibility of Environment Variables in Docs

All environment variables in the docs should now be properly indicated using braces: {ENV_VARIABLE}

Models

- Python
Published by guarin about 4 years ago

lightly - # Bug Fixes for Video datasets

Bug fixes for Video datasets

Make LightlyDataset threadsafe for videos

The VideoLoader now uses threading.local which allows the loader to be used from multiple threads.

LightlySubset of VideoDataset returns correct filenames

Resolved the bug when calling subset.get_filenames() on the subset of a video dataset would return the filenames of the full dataset instead of the subset.

Download of videos allows restarting

We added retries to handle errors when downloading videos.

Getting video meta information allows ignoring metadata

When trying to find out meta information about a video like the number of frames or timestamps there are two ways: - Try to read it from the metadata. However, sometimes this metadata is missing or false. - Find it out by reading the video itself. This is computationally expensive

We now allow ignoring metadata and choosing the 2nd option, which is slower but guaranteed to give the correct data.

Models

- Python
Published by MalteEbner about 4 years ago

lightly - Bug fixes

Bug fixes

Active learning scores from generators

Raise an error if the user intends to use active learning scores but they don't exist.

Clone labels to free file handlers

Resolved the bug where users running lightly-magic on large datasets have gotten errors because of too many open files.

Wrap requests to S3 in retries

We added retries to handle 5XX errors according to best practices.

Models

- Python
Published by philippmwirth about 4 years ago

lightly - Multi-GPU support, format check for embedding file

Multi-GPU support, format check for embedding file

Multi-GPU

We now support using lightly with multiple GPUs. For reference, look at the docs.

Format check for embedding file

When trying to upload an embedding file to the Lightly Platform it is now checked to have the correct format: It must have the column names in the correct order and without whitespaces and must not have empty rows.

Models

- Python
Published by MalteEbner about 4 years ago

lightly - Faster metadata upload, bugfixes and improvements

Faster metadata upload, bugfixes and improvements

Faster metadata upload

The upload of custom metadata is now done async and with multiple workers in parallel, allowing to speed up the upload process by up to 30 times.

Bugfixes

  • When there is a failure uploading a file to a signed url, now the status code is printed correctly.
  • Creating a LightlyDataset with an input_dir with videos will now raise all errors scanning the input directory instead of ignoring them. This means e.g. that if a subfolder without read permissions is encountered, a PermissionError will be raised instead of silently ignoring the subfolder.
  • When embedding, the order of the embeddings in the output will now be the order of the samples in the dataset, even if multiple workers are used in the dataloader. Thus also the embeddings in the embedding file are in the sorted order. This is not directly a bugfix but might prevent problems later on.

Improvements

- Python
Published by MalteEbner about 4 years ago

lightly - Speeding up io and improving documentation

Bug fixes and documentation updates

Documentation Updates

We have now added support for other cloud storage providers. You can now work directly with data stored in AWS S3, Azure Blob Storage, and Google Cloud Storage. Furthermore, you can stream data directly from your local filesystem in the Lightly Platform without uploading any images/ videos to any cloud. Check out the instructions here!

Performance

  • We improved the dataset indexing that is used whenever you create a lightly dataset. Indexing of large datasets (>1 mio samples) now works much faster.

Models

- Python
Published by IgorSusmelj about 4 years ago