Metadata-Version: 2.1
Name: lightly_train
Version: 0.1.0
Summary: Train models with self-supervised learning in a single command
Author: Lightly Team
License: AGPL-3.0
Keywords: machine-learning,computer-vision,deep-learning,self-supervised-learning,contrastive-learning,pytorch,python,pretrained-models,embeddings
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: lightly>=1.5.11
Requires-Dist: omegaconf>=2.3
Requires-Dist: psutil>=5.0
Requires-Dist: pytorch_lightning>=2.1
Requires-Dist: torch>=2.0.0
Requires-Dist: torchvision>=0.15.1
Requires-Dist: tqdm>=4.0.0
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: pytest-mock>=3.14.0; extra == "dev"
Requires-Dist: ruff>=0.4.0; extra == "dev"
Requires-Dist: mypy>=1.10.0; extra == "dev"
Requires-Dist: types-tqdm>=4.0.0; extra == "dev"
Provides-Extra: super-gradients
Requires-Dist: super-gradients>=3.7; extra == "super-gradients"
Provides-Extra: tensorboard
Requires-Dist: tensorboard>=2.10.0; extra == "tensorboard"
Provides-Extra: timm
Requires-Dist: timm>=1.0.3; extra == "timm"

# LightlyTrain

*Train models with self-supervised learning in a single command*

## Installation

```
git clone https://github.com/lightly-ai/lightly-train.git
pip install lightly-train[tensorboard,timm]
```

## Usage

### Python

#### Training
```python
import lightly_train

lightly_train.train(
    out="my_output_dir",
    data="my_data_dir",
    model="torchvision/resnet18",
    method="simclr",
    batch_size=128,
    epochs=100,
    precision="16-mixed",
    optim_args=dict(lr=0.0001),
    method_args=dict(temperature=0.1),
)
```

In most cases you only have to specify `out`, `data`, and `model`. The rest is optional.

The training process can be monitored with TensorBoard (requires 
`pip install lightly-train[tensorboard]`):
```
tensorboard --logdir my_output_dir
```

#### Exporting
```python
import lightly_train

lightly_train.export(
    out="my_output_dir/model_state_dict.pt",
    checkpoint="my_output_dir/checkpoints/last.ckpt",
    part="model",
    format="torch_state_dict",
)
```

#### Embedding
```python
import lightly_train

lightly_train.embed(
    out="my_output_dir/embeddings.csv",
    data="my_data_dir",
    checkpoint="my_output_dir/checkpoints/last.ckpt",
    format="csv",
)
```

#### Supported Models
```python
import lightly_train
print(lightly_train.list_models())
```

#### Supported Methods
```python
import lightly_train
print(lightly_train.list_methods())
```



### Command Line

#### Help
```
lightly-train help
```

#### Training
```
lightly-train train \
    out=my_output_dir \
    data=my_data_dir \
    model=torchvision/resnet18 \
    method=simclr \
    batch_size=128 \
    epochs=100 \
    precision=16-mixed \
    optim_args.lr=0.0001 \
    method_args.temperature=0.1
```

In most cases you only have to specify `out`, `data`, and `model`. The rest is optional.

The training process can be monitored with TensorBoard (requires 
`pip install lightly-train[tensorboard]`):
```
tensorboard --logdir my_output_dir
```

#### Embedding
```
lightly-train embed \
    out=my_output_dir/embeddings.csv \
    data=my_data_dir \
    checkpoint=my_output_dir/checkpoints/last.ckpt \
    format=csv
```

#### Exporting
```
lightly-train export \
    out=my_output_dir/model_state_dict.pt \
    checkpoint=my_output_dir/checkpoints/last.ckpt \
    part=model \
    format=torch_state_dict
```


#### Supported Models
```
lightly-train list_models
```

#### Supported Methods
```
lightly-train list_methods
```
