LightlyTrain -  Build better computer vision models faster with self-supervised pre-training

Build better computer vision models faster with self-supervised pre-training

Why LightlyTrain?

LightlyTrain uses self-supervised learning (SSL) to train computer vision models on large datasets without labels. It provides simple Python, Command Line, and Docker interfaces to train models with popular SSL methods such as DINO and SimCLR.

The trained models are ideal starting points for fine-tuning on downstream tasks such as image classification, object detection, and segmentation or for generating image embeddings. Models trained with LightlyTrain result in improved performance, faster convergence, and better generalization compared to models trained without SSL. Image embeddings created with LightlyTrain capture more relevant information than their supervised counterparts and seamlessly extend to new classes due to the unsupervised nature of SSL.

Lightly is the expert in SSL for computer vision and developed LightlyTrain to simplify model training for any task and dataset.

How It Works

Train a Model with SSL

import lightly_train

ligthly_train.train(
    out="out/my_experiment",            # Output directory
    data="my_data_dir",                 # Directory with images
    model="torchvision/resnet50",       # Model to train
    method="dino",                      # Self-supervised learning method
)

After training is complete, you can either export the model for fine-tuning or use the model to generate image embeddings.

Export the Model for Fine-Tuning

import lightly_train

lightly_train.export(
    out="my_exported_model.pth",                            # Exported model
    checkpoint="out/my_experiment/checkpoints/last.ckpt",   # LightlyTrain checkpoint
    part="model",                                           # Model part to export
    format="torch_state_dict",                              # Export format
)

You can now fine-tune the exported model with your favorite library.

Generate Image Embeddings

import lightly_train

lightly_train.embed(
    out="my_embeddings.pth",                                # Exported embeddings
    checkpoint="out/my_experiment/checkpoints/last.ckpt",   # LightlyTrain checkpoint
    data="my_data_dir",                                     # Directory with images
    format="torch",                                         # Embedding format
)

You can now use the generated embeddings for clustering, retrieval, or visualization tasks.

The quick start guide shows in more detail how to install and use LightlyTrain.

Features

Supported Models

Torchvision

  • ResNet

  • ConvNext

TIMM

  • All models

Ultralytics

  • YOLOv5

  • YOLOv6

  • YOLOv8

SuperGradients

  • PP-LiteSeg

  • SSD

  • YOLO-NAS

See supported models for a detailed list of all supported models.

Contact us if you need support for additional models or libraries.

Supported SSL Methods

  • DINO

  • DenseCL (experimental)

  • DenseCLDINO (experimental)

  • SimCLR

See methods for details.

License

LightlyTrain is available under an AGPL-3.0 and a commercial license. Please contact us at info@lightly.ai for more information.

Contact

Email | Website | Discord