.core

Contains the core functionality of the lightly Python package.

lightly.core.embed_images(checkpoint: str, config_path: str = None, **kwargs)

Embed images with a self-supervised model.

Calls the same function as lightly-embed. All arguments passed to lightly-embed can also be passed to this function (see below for an example).

Args:
checkpoint:

Path to the checkpoint file for the embedding model.

config_path:

Path to config.yaml. If None, the default configs will be used.

**kwargs:

Overwrite default configs py passing keyword arguments.

Returns:

Embeddings, labels, and filenames of the images.

Examples:
>>> import lightly
>>> my_checkpoint_path = 'path/to/checkpoint.ckpt'
>>>
>>> # embed images with default configs
>>> embeddings, _, _ = lightly.embed_images(
>>>     my_checkpoint_path, input_dir='path/to/data')
>>>
>>> # embed images with separate config file
>>> my_config_path = 'my/config/file.yaml'
>>> embeddings, _, _ = lightly.embed_images(
>>>     my_checkpoint_path, input_dir='path/to/data', config_path=my_config_path)
>>>
>>> # embed images with default settings and overwrites: at inference,
>>> # we can use larger input_sizes because it requires less memory.
>>> my_collate = {input_size: 256}
>>> embeddings, _, _ = lightly.embed_images(
>>>     my_checkpoint_path, input_dir='path/to/data', collate=my_collate)
>>> # the command above is equivalent to:
>>> # lightly-embed input_dir='path/to/data' collate.input_size=256
lightly.core.train_embedding_model(config_path: str = None, **kwargs)

Train a self-supervised model.

Calls the same function as lightly-train. All arguments passed to lightly-train can also be passed to this function (see below for an example).

Args:
config_path:

Path to config.yaml. If None, the default configs will be used.

**kwargs:

Overwrite default configs py passing keyword arguments.

Returns:

Path to checkpoint of the trained embedding model.

Examples:
>>> import lightly
>>>
>>> # train a model with default configs
>>> checkpoint_path = lightly.train_embedding_model(
>>>     input_dir='path/to/data')
>>>
>>> # train a model with separate config file
>>> my_config_path = 'my/config/file.yaml'
>>> checkpoint_path = lightly.train_embedding_model(
>>>     input_dir='path/to/data', config_path=my_config_path)
>>>
>>> # train a model with default settings and overwrites: large batch
>>> # sizes are benefitial for self-supervised training and more 
>>> # workers speed up the dataloading process.
>>> my_loader = {
>>>     batch_size: 100,
>>>     num_workers: 8,
>>> }
>>> checkpoint_path = lightly.train_embedding_model(
>>>     input_dir='path/to/data', loader=my_loader)
>>> # the command above is equivalent to:
>>> # lightly-train input_dir='path/to/data' loader.batch_size=100 loader.num_workers=8
lightly.core.train_model_and_embed_images(config_path: str = None, **kwargs)

Train a self-supervised model and use it to embed images.

Calls the same function as lightly-magic. All arguments passed to lightly-magic can also be passed to this function (see below for an example).

Args:
config_path:

Path to config.yaml. If None, the default configs will be used.

**kwargs:

Overwrite default configs py passing keyword arguments.

Returns:

Embeddings, labels, and filenames of the images.

Examples:
>>> import lightly
>>>
>>> # train a model and embed images with default configs
>>> embeddings, _, _ = lightly.train_model_and_embed_images(
>>>     input_dir='path/to/data')
>>>
>>> # train a model and embed images with separate config file
>>> my_config_path = 'my/config/file.yaml'
>>> embeddings, _, _ = lightly.train_model_and_embed_images(
>>>     input_dir='path/to/data', config_path=my_config_path)
>>>
>>> # train a model and embed images with default settings + overwrites
>>> my_trainer = {max_epochs: 10}
>>> embeddings, _, _ = lightly.train_model_and_embed_images(
>>>     input_dir='path/to/data', trainer=my_trainer)
>>> # the command above is equivalent to:
>>> # lightly-magic input_dir='path/to/data' trainer.max_epochs=10