lightly-train 0.2.4__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lightly_train-0.2.4 → lightly_train-0.3.0}/.github/pull_request_template.md +1 -1
- {lightly_train-0.2.4 → lightly_train-0.3.0}/.github/workflows/build_docker_image.yml +3 -3
- lightly_train-0.2.4/.github/workflows/test_code_format.yml → lightly_train-0.3.0/.github/workflows/check_code_format.yml +4 -4
- {lightly_train-0.2.4 → lightly_train-0.3.0}/.github/workflows/release_dockerhub.yml +8 -8
- {lightly_train-0.2.4 → lightly_train-0.3.0}/.github/workflows/release_pypi.yml +3 -3
- {lightly_train-0.2.4 → lightly_train-0.3.0}/.github/workflows/test_docker.yml +3 -3
- lightly_train-0.2.4/.github/workflows/test.yml → lightly_train-0.3.0/.github/workflows/test_unit.yml +4 -6
- lightly_train-0.2.4/.github/workflows/weekly_dependency_tests.yml → lightly_train-0.3.0/.github/workflows/test_unit_latest_dependencies.yml +5 -4
- lightly_train-0.2.4/.github/workflows/test_minimal_deps.yml → lightly_train-0.3.0/.github/workflows/test_unit_minimal_dependencies.yml +4 -6
- {lightly_train-0.2.4 → lightly_train-0.3.0}/.gitignore +5 -0
- lightly_train-0.3.0/CONTRIBUTING.md +48 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/DOCS.md +26 -13
- lightly_train-0.3.0/MAINTAINING.md +19 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/Makefile +27 -1
- {lightly_train-0.2.4/src/lightly_train.egg-info → lightly_train-0.3.0}/PKG-INFO +30 -20
- {lightly_train-0.2.4 → lightly_train-0.3.0}/README.md +14 -16
- {lightly_train-0.2.4 → lightly_train-0.3.0}/docker/README.md +9 -9
- lightly_train-0.3.0/docs/Makefile +41 -0
- lightly_train-0.3.0/docs/build.py +70 -0
- lightly_train-0.3.0/docs/source/_static/custom.css +11 -0
- lightly_train-0.3.0/docs/source/_static/lightly_train.svg +6 -0
- lightly_train-0.3.0/docs/source/_templates/sidebar/version.html +1 -0
- lightly_train-0.3.0/docs/source/conf.py +71 -0
- lightly_train-0.3.0/docs/source/index.md +11 -0
- lightly_train-0.3.0/docs/source/installation.md +5 -0
- lightly_train-0.3.0/docs/source/python_api/index.md +8 -0
- lightly_train-0.3.0/docs/source/python_api/lightly_train.md +10 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/pyproject.toml +32 -4
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/__init__.py +1 -1
- lightly_train-0.3.0/src/lightly_train/_callbacks/callback_args.py +40 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_callbacks/callback_helpers.py +14 -20
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_callbacks/checkpoint.py +13 -10
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_checkpoint.py +8 -1
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_cli.py +33 -19
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/common_helpers.py +17 -2
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/embed.py +119 -87
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/export.py +29 -22
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/extract_video_frames.py +39 -32
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/train.py +179 -96
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/train_helpers.py +92 -33
- lightly_train-0.3.0/src/lightly_train/_configs/config.py +76 -0
- lightly_train-0.3.0/src/lightly_train/_configs/validate.py +171 -0
- lightly_train-0.3.0/src/lightly_train/_data/_serialize/memory_mapped_sequence.py +138 -0
- lightly_train-0.3.0/src/lightly_train/_data/image_dataset.py +72 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/embedding_transform.py +2 -2
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_loggers/jsonl.py +2 -4
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_loggers/logger_args.py +8 -8
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_loggers/logger_helpers.py +8 -23
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_loggers/tensorboard.py +5 -6
- lightly_train-0.3.0/src/lightly_train/_loggers/wandb.py +29 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_methods/densecl.py +63 -29
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_methods/densecldino.py +26 -91
- lightly_train-0.3.0/src/lightly_train/_methods/dino.py +282 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_methods/method.py +24 -13
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_methods/method_args.py +7 -4
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_methods/simclr.py +32 -11
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/package_helpers.py +2 -0
- lightly_train-0.3.0/src/lightly_train/_models/super_gradients/segmentation_module.py +59 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/super_gradients/super_gradients_package.py +7 -1
- lightly_train-0.3.0/src/lightly_train/_models/ultralytics/ultralytics.py +96 -0
- lightly_train-0.3.0/src/lightly_train/_models/ultralytics/ultralytics_package.py +98 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_optim/adamw_args.py +6 -10
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_optim/optimizer_args.py +2 -4
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_plot.py +3 -1
- lightly_train-0.2.4/src/lightly_train/_transforms.py → lightly_train-0.3.0/src/lightly_train/_transforms/to_tensor.py +1 -1
- lightly_train-0.3.0/src/lightly_train/_transforms/transform.py +100 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/errors.py +4 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/types.py +0 -11
- {lightly_train-0.2.4 → lightly_train-0.3.0/src/lightly_train.egg-info}/PKG-INFO +30 -20
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train.egg-info/SOURCES.txt +38 -7
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train.egg-info/requires.txt +16 -3
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_callbacks/test_callback_helpers.py +15 -57
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_commands/test_common_helpers.py +41 -3
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_commands/test_embed.py +27 -10
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_commands/test_export.py +18 -2
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_commands/test_extract_video_frames.py +33 -3
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_commands/test_train.py +114 -24
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_commands/test_train_helpers.py +148 -22
- lightly_train-0.3.0/tests/_configs/test_config.py +56 -0
- lightly_train-0.3.0/tests/_configs/test_validate.py +144 -0
- lightly_train-0.3.0/tests/_data/_serialize/test_memory_mapped_sequence.py +119 -0
- lightly_train-0.3.0/tests/_data/test_image_dataset.py +166 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_loggers/test_logger_helpers.py +12 -32
- lightly_train-0.3.0/tests/_methods/test_densecl.py +18 -0
- lightly_train-0.3.0/tests/_methods/test_densecldino.py +17 -0
- lightly_train-0.3.0/tests/_methods/test_dino.py +20 -0
- lightly_train-0.3.0/tests/_methods/test_simclr.py +17 -0
- lightly_train-0.3.0/tests/_models/custom/__init__.py +7 -0
- lightly_train-0.3.0/tests/_models/super_gradients/test_segmentation_module.py +36 -0
- lightly_train-0.3.0/tests/_models/super_gradients/test_super_gradients_package.py +74 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_models/test_package_helpers.py +10 -1
- lightly_train-0.3.0/tests/_models/timm/__init__.py +7 -0
- lightly_train-0.3.0/tests/_models/ultralytics/test_ultralytics.py +65 -0
- lightly_train-0.3.0/tests/_models/ultralytics/test_ultralytics_package.py +56 -0
- lightly_train-0.3.0/tests/_optim/__init__.py +7 -0
- lightly_train-0.3.0/tests/_transforms/__init__.py +7 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/helpers.py +75 -1
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/test__checkpoint.py +3 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/test__cli.py +30 -20
- lightly_train-0.2.4/CONTRIBUTE.md +0 -13
- lightly_train-0.2.4/src/lightly_train/_callbacks/callback_args.py +0 -45
- lightly_train-0.2.4/src/lightly_train/_configs/config.py +0 -12
- lightly_train-0.2.4/src/lightly_train/_configs/validate.py +0 -96
- lightly_train-0.2.4/src/lightly_train/_loggers/wandb.py +0 -32
- lightly_train-0.2.4/src/lightly_train/_methods/dino.py +0 -237
- lightly_train-0.2.4/tests/_configs/test_validate.py +0 -101
- lightly_train-0.2.4/tests/_models/super_gradients/test_super_gradients_package.py +0 -47
- {lightly_train-0.2.4 → lightly_train-0.3.0}/LICENSE +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/dev_tools/licenseheader.tmpl +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/docker/Dockerfile-amd64-cuda +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/docker/Makefile +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/setup.cfg +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_callbacks/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_commands/_warnings.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_configs/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_configs/omegaconf_utils.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_constants.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_embedding → lightly_train-0.3.0/src/lightly_train/_data}/__init__.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_embedding/writers → lightly_train-0.3.0/src/lightly_train/_data/_serialize}/__init__.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_loggers → lightly_train-0.3.0/src/lightly_train/_embedding}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/embedding_format.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/embedding_predictor.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_methods → lightly_train-0.3.0/src/lightly_train/_embedding/writers}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/writers/csv_writer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/writers/embedding_writer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/writers/torch_writer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_embedding/writers/writer_helpers.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_models → lightly_train-0.3.0/src/lightly_train/_loggers}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_logging.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_models/custom → lightly_train-0.3.0/src/lightly_train/_methods}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_methods/method_helpers.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_models/embedding → lightly_train-0.3.0/src/lightly_train/_models}/__init__.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_models/super_gradients → lightly_train-0.3.0/src/lightly_train/_models/custom}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/custom/custom.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/custom/custom_package.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_models/timm → lightly_train-0.3.0/src/lightly_train/_models/embedding}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/embedding/base.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/embedding_model.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/feature_extractor.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/package.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_models/torchvision → lightly_train-0.3.0/src/lightly_train/_models/super_gradients}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/super_gradients/customizable_detector.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/super_gradients/super_gradients.py +0 -0
- {lightly_train-0.2.4/src/lightly_train/_optim → lightly_train-0.3.0/src/lightly_train/_models/timm}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/timm/timm.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/timm/timm_package.py +0 -0
- {lightly_train-0.2.4/tests → lightly_train-0.3.0/src/lightly_train/_models/torchvision}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/torchvision/convnext.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/torchvision/resnet.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/torchvision/torchvision.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_models/torchvision/torchvision_package.py +0 -0
- {lightly_train-0.2.4/tests/_callbacks → lightly_train-0.3.0/src/lightly_train/_models/ultralytics}/__init__.py +0 -0
- {lightly_train-0.2.4/tests/_commands → lightly_train-0.3.0/src/lightly_train/_optim}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_optim/optimizer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_optim/optimizer_type.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_optim/trainable_modules.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train/_scaling.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train.egg-info/dependency_links.txt +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train.egg-info/entry_points.txt +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/src/lightly_train.egg-info/top_level.txt +0 -0
- {lightly_train-0.2.4/tests/_configs → lightly_train-0.3.0/tests}/__init__.py +0 -0
- {lightly_train-0.2.4/tests/_embedding → lightly_train-0.3.0/tests/_callbacks}/__init__.py +0 -0
- {lightly_train-0.2.4/tests/_embedding/writers → lightly_train-0.3.0/tests/_commands}/__init__.py +0 -0
- {lightly_train-0.2.4/tests/_methods → lightly_train-0.3.0/tests/_configs}/__init__.py +0 -0
- {lightly_train-0.2.4/tests/_models → lightly_train-0.3.0/tests/_embedding}/__init__.py +0 -0
- {lightly_train-0.2.4/tests/_models/custom → lightly_train-0.3.0/tests/_embedding/writers}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_embedding/writers/test_csv_writer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_embedding/writers/test_torch_writer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_embedding/writers/test_writer_helpers.py +0 -0
- {lightly_train-0.2.4/tests/_models/timm → lightly_train-0.3.0/tests/_methods}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_methods/test_method_helpers.py +0 -0
- {lightly_train-0.2.4/tests/_optim → lightly_train-0.3.0/tests/_models}/__init__.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_models/custom/test_custom.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_models/custom/test_custom_package.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_models/timm/test_timm.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_models/timm/test_timm_package.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_models/torchvision/test_torchvision_package.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/_optim/test_optimizer.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/test__logging.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/test__plot.py +0 -0
- {lightly_train-0.2.4 → lightly_train-0.3.0}/tests/test__scaling.py +0 -0
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
|
|
5
5
|
## How has it been tested?
|
|
6
6
|
|
|
7
|
-
(Delete this: Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.)
|
|
7
|
+
(Delete this: Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration.)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Docker
|
|
1
|
+
name: Build Docker Image
|
|
2
2
|
|
|
3
3
|
# Pushes a release candidate build to lightly-main/train after a merge into main
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ concurrency:
|
|
|
18
18
|
|
|
19
19
|
jobs:
|
|
20
20
|
build-docker-image:
|
|
21
|
-
name:
|
|
21
|
+
name: Build Docker Image
|
|
22
22
|
runs-on: cpu
|
|
23
23
|
timeout-minutes: 60
|
|
24
24
|
outputs:
|
|
@@ -41,7 +41,7 @@ jobs:
|
|
|
41
41
|
cd ./docker && make main-deploy-amd64-cuda
|
|
42
42
|
|
|
43
43
|
slack-notification:
|
|
44
|
-
name:
|
|
44
|
+
name: Send Slack Notification
|
|
45
45
|
needs:
|
|
46
46
|
- build-docker-image
|
|
47
47
|
if: always()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Code Format
|
|
1
|
+
name: Check Code Format
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
@@ -28,9 +28,9 @@ jobs:
|
|
|
28
28
|
- '!docs/**'
|
|
29
29
|
- '!docker/**'
|
|
30
30
|
- '!.github/**'
|
|
31
|
-
- '.github/workflows/
|
|
32
|
-
|
|
33
|
-
name: Check
|
|
31
|
+
- '.github/workflows/check_code_format.yml'
|
|
32
|
+
check-code-format:
|
|
33
|
+
name: Check Code Format
|
|
34
34
|
runs-on: cpu
|
|
35
35
|
strategy:
|
|
36
36
|
matrix:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Release DockerHub
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_call:
|
|
5
5
|
workflow_dispatch:
|
|
6
6
|
|
|
7
7
|
jobs:
|
|
8
|
-
dockerhub
|
|
9
|
-
name:
|
|
8
|
+
release-dockerhub:
|
|
9
|
+
name: Release DockerHub
|
|
10
10
|
runs-on: cpu
|
|
11
11
|
defaults:
|
|
12
12
|
run:
|
|
@@ -23,15 +23,15 @@ jobs:
|
|
|
23
23
|
docker login -u borislightly -p ${{ secrets.DOCKERHUB_PASSWORD_BORISLIGHTLY }}
|
|
24
24
|
make release
|
|
25
25
|
slack-notification:
|
|
26
|
-
name:
|
|
26
|
+
name: Send Slack Notification
|
|
27
27
|
needs:
|
|
28
|
-
- dockerhub
|
|
28
|
+
- release-dockerhub
|
|
29
29
|
if: always()
|
|
30
30
|
runs-on: cpu
|
|
31
31
|
timeout-minutes: 5
|
|
32
32
|
steps:
|
|
33
33
|
- name: Slack Notification - Success
|
|
34
|
-
if: ${{ needs.dockerhub
|
|
34
|
+
if: ${{ needs.release-dockerhub.result == 'success' }}
|
|
35
35
|
uses: rtCamp/action-slack-notify@v2
|
|
36
36
|
env:
|
|
37
37
|
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASES }}
|
|
@@ -44,12 +44,12 @@ jobs:
|
|
|
44
44
|
|
|
45
45
|
Pull it from the registry with:
|
|
46
46
|
```
|
|
47
|
-
docker pull
|
|
47
|
+
docker pull lightly/train:latest
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
See it in DockerHub at https://hub.docker.com/repository/docker/lightly/train/general
|
|
51
51
|
- name: Slack Notification - Failure
|
|
52
|
-
if: ${{ needs.dockerhub
|
|
52
|
+
if: ${{ needs.release-dockerhub.result != 'success' }}
|
|
53
53
|
uses: rtCamp/action-slack-notify@v2
|
|
54
54
|
env:
|
|
55
55
|
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_RELEASES }}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Release PyPI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_dispatch:
|
|
@@ -7,8 +7,8 @@ on:
|
|
|
7
7
|
# types: [published]
|
|
8
8
|
|
|
9
9
|
jobs:
|
|
10
|
-
|
|
11
|
-
name:
|
|
10
|
+
release-pypi:
|
|
11
|
+
name: Release PyPI
|
|
12
12
|
runs-on: cpu
|
|
13
13
|
steps:
|
|
14
14
|
- name: Checkout code
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Docker
|
|
1
|
+
name: Test Docker
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
@@ -28,8 +28,8 @@ jobs:
|
|
|
28
28
|
- '!docs/**'
|
|
29
29
|
- '!.github/**'
|
|
30
30
|
- '.github/workflows/test_docker.yml'
|
|
31
|
-
test:
|
|
32
|
-
name: Test
|
|
31
|
+
test-docker:
|
|
32
|
+
name: Test Docker
|
|
33
33
|
needs: detect-code-changes
|
|
34
34
|
if: needs.detect-code-changes.outputs.run-tests == 'true'
|
|
35
35
|
runs-on: cpu
|
lightly_train-0.2.4/.github/workflows/test.yml → lightly_train-0.3.0/.github/workflows/test_unit.yml
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Unit
|
|
1
|
+
name: Test Unit
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
@@ -28,9 +28,9 @@ jobs:
|
|
|
28
28
|
- '!docs/**'
|
|
29
29
|
- '!docker/**'
|
|
30
30
|
- '!.github/**'
|
|
31
|
-
- '.github/workflows/
|
|
32
|
-
test:
|
|
33
|
-
name: Test
|
|
31
|
+
- '.github/workflows/test_unit.yml'
|
|
32
|
+
test-unit:
|
|
33
|
+
name: Test Unit
|
|
34
34
|
needs: detect-code-changes
|
|
35
35
|
if: needs.detect-code-changes.outputs.run-tests == 'true'
|
|
36
36
|
runs-on: cpu
|
|
@@ -51,8 +51,6 @@ jobs:
|
|
|
51
51
|
make install-pinned-${{ matrix.python }}
|
|
52
52
|
make install-ffmpeg-ubuntu
|
|
53
53
|
- name: Run Pytest
|
|
54
|
-
env:
|
|
55
|
-
CUDA_VISIBLE_DEVICES: ""
|
|
56
54
|
run: |
|
|
57
55
|
source .venv/bin/activate
|
|
58
56
|
make test-ci
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Test Unit Latest Dependencies
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
workflow_dispatch:
|
|
@@ -26,9 +26,9 @@ jobs:
|
|
|
26
26
|
- '!docs/**'
|
|
27
27
|
- '!docker/**'
|
|
28
28
|
- '!.github/**'
|
|
29
|
-
- '.github/workflows/
|
|
30
|
-
test:
|
|
31
|
-
name: Test
|
|
29
|
+
- '.github/workflows/test_unit_latest_dependencies.yml'
|
|
30
|
+
test-unit-latest-dependencies:
|
|
31
|
+
name: Test Unit Latest Dependencies
|
|
32
32
|
needs: detect-code-changes
|
|
33
33
|
if: needs.detect-code-changes.outputs.run-tests == 'true'
|
|
34
34
|
runs-on: cpu
|
|
@@ -49,6 +49,7 @@ jobs:
|
|
|
49
49
|
make install-latest
|
|
50
50
|
make install-ffmpeg-ubuntu
|
|
51
51
|
- name: Run Pytest
|
|
52
|
+
# TODO(Philipp, 09/24): Remove CUDA_VISIBLE_DEVICES: "".
|
|
52
53
|
env:
|
|
53
54
|
CUDA_VISIBLE_DEVICES: ""
|
|
54
55
|
run: |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
name: Minimal
|
|
1
|
+
name: Test Unit Minimal Dependencies
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
@@ -28,9 +28,9 @@ jobs:
|
|
|
28
28
|
- '!docs/**'
|
|
29
29
|
- '!docker/**'
|
|
30
30
|
- '!.github/**'
|
|
31
|
-
- '.github/workflows/
|
|
32
|
-
test:
|
|
33
|
-
name: Test
|
|
31
|
+
- '.github/workflows/test_unit_minimal_dependencies.yml'
|
|
32
|
+
test-unit-minimal-dependencies:
|
|
33
|
+
name: Test Unit Minimal Dependencies
|
|
34
34
|
needs: detect-code-changes
|
|
35
35
|
if: needs.detect-code-changes.outputs.run-tests == 'true'
|
|
36
36
|
runs-on: cpu
|
|
@@ -54,8 +54,6 @@ jobs:
|
|
|
54
54
|
make install-ffmpeg-ubuntu
|
|
55
55
|
fi
|
|
56
56
|
- name: Run Pytest
|
|
57
|
-
env:
|
|
58
|
-
CUDA_VISIBLE_DEVICES: ""
|
|
59
57
|
run: |
|
|
60
58
|
source .venv/bin/activate
|
|
61
59
|
make test-ci
|
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
lightly_train_docker_test_data
|
|
3
3
|
out
|
|
4
4
|
|
|
5
|
+
### Ultralytics ###
|
|
6
|
+
# Ultralytics downloads files to the current work directory.
|
|
7
|
+
yolo*.pt
|
|
8
|
+
yolo*.yaml
|
|
9
|
+
|
|
5
10
|
# Created by https://www.toptal.com/developers/gitignore/api/macos,windows,linux,python
|
|
6
11
|
# Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,linux,python
|
|
7
12
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Contributing to LightlyTrain
|
|
2
|
+
|
|
3
|
+
## Development
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
git clone https://github.com/lightly-ai/lightly-train.git
|
|
7
|
+
make install-dev
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
make format
|
|
12
|
+
make static-checks
|
|
13
|
+
make test
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Documentation
|
|
17
|
+
|
|
18
|
+
Documentation is in the [docs](./docs) folder. To build the documentation, install
|
|
19
|
+
dev dependencies with `make install-dev`, then move to the `docs` folder and run:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
make docs
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This builds the documentation in the `docs/build/<version>` folder.
|
|
26
|
+
|
|
27
|
+
To build the documentation for the stable version, checkout the branch with the
|
|
28
|
+
stable version and run:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
make docs-stable
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
This builds the documentaion in the `docs/build/stable` folder.
|
|
35
|
+
|
|
36
|
+
Docs can be served locally with:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
make serve
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
#### Writing Documentation
|
|
43
|
+
|
|
44
|
+
The documentation source is in [docs/source](./docs/source). The documentation is
|
|
45
|
+
written in Markdown (MyST flavor). For more information regarding formatting, see:
|
|
46
|
+
|
|
47
|
+
- https://pradyunsg.me/furo/reference/
|
|
48
|
+
- https://myst-parser.readthedocs.io/en/latest/syntax/typography.html
|
|
@@ -9,6 +9,7 @@ pip install lightly-train[tensorboard,timm]
|
|
|
9
9
|
### Python
|
|
10
10
|
|
|
11
11
|
#### Training
|
|
12
|
+
|
|
12
13
|
```python
|
|
13
14
|
import lightly_train
|
|
14
15
|
|
|
@@ -28,20 +29,24 @@ lightly_train.train(
|
|
|
28
29
|
In most cases you only have to specify `out`, `data`, and `model`. The rest is optional.
|
|
29
30
|
|
|
30
31
|
You can monitor your training process with the help of `tensorboard` and `wandb` loggers:
|
|
32
|
+
|
|
31
33
|
```
|
|
32
34
|
pip install "lightly-train[tensorboard, wandb]"
|
|
33
35
|
```
|
|
34
36
|
|
|
35
37
|
Configure the loggers from Python:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
|
|
39
|
+
- `loggers={"tensorboard": True}`: Enable `tensorboard` logger with default arguments.
|
|
40
|
+
- `loggers={"wandb": True}`: Enable `wandb` logger with default arguments.
|
|
41
|
+
- `loggers={"wandb": {"project": "my-project"}}`: Configure `wandb` logger with custom arguments.
|
|
39
42
|
|
|
40
43
|
LightlyTrain uses the PyTorchLightning loggers under the hood. Learn more about their configuration:
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
|
|
45
|
+
- https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.loggers.wandb.html
|
|
46
|
+
- https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.loggers.tensorboard.html
|
|
43
47
|
|
|
44
48
|
#### Exporting
|
|
49
|
+
|
|
45
50
|
```python
|
|
46
51
|
import lightly_train
|
|
47
52
|
|
|
@@ -54,6 +59,7 @@ lightly_train.export(
|
|
|
54
59
|
```
|
|
55
60
|
|
|
56
61
|
#### Embedding
|
|
62
|
+
|
|
57
63
|
```python
|
|
58
64
|
import lightly_train
|
|
59
65
|
|
|
@@ -66,27 +72,29 @@ lightly_train.embed(
|
|
|
66
72
|
```
|
|
67
73
|
|
|
68
74
|
#### Supported Models
|
|
75
|
+
|
|
69
76
|
```python
|
|
70
77
|
import lightly_train
|
|
71
78
|
print(lightly_train.list_models())
|
|
72
79
|
```
|
|
73
80
|
|
|
74
81
|
#### Supported Methods
|
|
82
|
+
|
|
75
83
|
```python
|
|
76
84
|
import lightly_train
|
|
77
85
|
print(lightly_train.list_methods())
|
|
78
86
|
```
|
|
79
87
|
|
|
80
|
-
|
|
81
|
-
|
|
82
88
|
### Command Line
|
|
83
89
|
|
|
84
90
|
#### Help
|
|
91
|
+
|
|
85
92
|
```
|
|
86
93
|
lightly-train help
|
|
87
94
|
```
|
|
88
95
|
|
|
89
96
|
#### Training
|
|
97
|
+
|
|
90
98
|
```
|
|
91
99
|
lightly-train train \
|
|
92
100
|
out=my_output_dir \
|
|
@@ -103,25 +111,28 @@ lightly-train train \
|
|
|
103
111
|
In most cases you only have to specify `out`, `data`, and `model`. The rest is optional.
|
|
104
112
|
|
|
105
113
|
You can monitor your training process with the help of `tensorboard` and `wandb` loggers:
|
|
114
|
+
|
|
106
115
|
```
|
|
107
116
|
pip install "lightly-train[tensorboard, wandb]"
|
|
108
117
|
```
|
|
109
118
|
|
|
110
119
|
Configure the loggers from the command-line:
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
120
|
+
|
|
121
|
+
- `loggers.tensorboard=True`: Enable `tensorboard` logger with default arguments.
|
|
122
|
+
- `loggers.wandb=True`: Enable `wandb` logger with default arguments.
|
|
123
|
+
- `loggers.wandb.project="my-project"`: Configure `wandb` logger with custom arguments.
|
|
114
124
|
|
|
115
125
|
LightlyTrain uses the PyTorchLightning loggers under the hood. Learn more about their configuration:
|
|
116
|
-
* https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.loggers.wandb.html
|
|
117
|
-
* https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.loggers.tensorboard.html
|
|
118
126
|
|
|
127
|
+
- https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.loggers.wandb.html
|
|
128
|
+
- https://lightning.ai/docs/pytorch/stable/api/lightning.pytorch.loggers.tensorboard.html
|
|
119
129
|
|
|
120
130
|
```
|
|
121
131
|
tensorboard --logdir my_output_dir
|
|
122
132
|
```
|
|
123
133
|
|
|
124
134
|
#### Embedding
|
|
135
|
+
|
|
125
136
|
```
|
|
126
137
|
lightly-train embed \
|
|
127
138
|
out=my_output_dir/embeddings.csv \
|
|
@@ -131,6 +142,7 @@ lightly-train embed \
|
|
|
131
142
|
```
|
|
132
143
|
|
|
133
144
|
#### Exporting
|
|
145
|
+
|
|
134
146
|
```
|
|
135
147
|
lightly-train export \
|
|
136
148
|
out=my_output_dir/model_state_dict.pt \
|
|
@@ -139,13 +151,14 @@ lightly-train export \
|
|
|
139
151
|
format=torch_state_dict
|
|
140
152
|
```
|
|
141
153
|
|
|
142
|
-
|
|
143
154
|
#### Supported Models
|
|
155
|
+
|
|
144
156
|
```
|
|
145
157
|
lightly-train list_models
|
|
146
158
|
```
|
|
147
159
|
|
|
148
160
|
#### Supported Methods
|
|
161
|
+
|
|
149
162
|
```
|
|
150
163
|
lightly-train list_methods
|
|
151
164
|
```
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Maintaining LightlyTrain
|
|
2
|
+
|
|
3
|
+
This document is intended for maintainers of LightlyTrain. If you would like to
|
|
4
|
+
contribute, please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) document.
|
|
5
|
+
|
|
6
|
+
## Release
|
|
7
|
+
|
|
8
|
+
Follow these steps to release a new version of LightlyTrain:
|
|
9
|
+
|
|
10
|
+
1. Bump the version in `lightly_train/__init__.py`. We use [Semantic Versioning](https://semver.org/). Note that we are still on major version 0 and therefore minor version
|
|
11
|
+
bumps are considered breaking changes.
|
|
12
|
+
1. Once the version is bumped, create a new release on GitHub: https://github.com/lightly-ai/lightly-train/releases with a new tag that matches the version number. Make sure to
|
|
13
|
+
create release notes using the "Generate release notes" button.
|
|
14
|
+
1. To release on PyPI, run the [PyPI Release action](https://github.com/lightly-ai/lightly-train/actions/workflows/release_pypi.yml) from the main branch.
|
|
15
|
+
1. To release on DockerHub, run the [DockerHub Release action](https://github.com/lightly-ai/lightly-train/actions/workflows/release_dockerhub.yml) from the branch with the new
|
|
16
|
+
version tag.
|
|
17
|
+
1. If the README was updated, make sure to copy the information to the DockerHub
|
|
18
|
+
description for LightlyTrain: https://hub.docker.com/r/lightly/ (you might have to ask
|
|
19
|
+
someone who is a member of the Lightly DockerHub organization to do this for you).
|
|
@@ -36,6 +36,11 @@ all-checks: static-checks test
|
|
|
36
36
|
.PHONY: static-checks
|
|
37
37
|
static-checks: format-check type-check
|
|
38
38
|
|
|
39
|
+
# Files to format with mdformat.
|
|
40
|
+
# This is needed to avoid formatting files in .venv. The mdformat command has an
|
|
41
|
+
# --exclude option but only on Python 3.13+.
|
|
42
|
+
MDFORMAT_FILES=.github docker docs src tests *.md
|
|
43
|
+
|
|
39
44
|
# run formatter
|
|
40
45
|
.PHONY: format
|
|
41
46
|
format:
|
|
@@ -43,12 +48,16 @@ format:
|
|
|
43
48
|
ruff format .
|
|
44
49
|
# Fix linting issues and sort imports
|
|
45
50
|
ruff check --fix .
|
|
51
|
+
# Format markdown files
|
|
52
|
+
mdformat ${MDFORMAT_FILES}
|
|
46
53
|
|
|
47
54
|
# run format check
|
|
48
55
|
.PHONY: format-check
|
|
49
56
|
format-check:
|
|
50
57
|
# Check code formatting
|
|
51
58
|
ruff check .
|
|
59
|
+
# Check markdown formatting
|
|
60
|
+
mdformat --check ${MDFORMAT_FILES}
|
|
52
61
|
|
|
53
62
|
# run type check
|
|
54
63
|
.PHONY: type-check
|
|
@@ -105,12 +114,19 @@ endif
|
|
|
105
114
|
|
|
106
115
|
# SuperGradients is not compatible with Python>=3.10. It is also not easy to install
|
|
107
116
|
# on MacOS. Therefore we exclude it from the default extras.
|
|
108
|
-
EXTRAS = [dev,tensorboard,timm,wandb]
|
|
117
|
+
EXTRAS = [dev,tensorboard,timm,ultralytics,wandb]
|
|
118
|
+
# Exclude ultralytics from docker extras as it has an AGPL license and we should not
|
|
119
|
+
# distribute it with the docker image.
|
|
109
120
|
DOCKER_EXTRAS = --extra tensorboard --extra timm --extra wandb
|
|
110
121
|
|
|
111
122
|
# Date until which dependencies installed with --exclude-newer must have been released.
|
|
112
123
|
# Dependencies released after this date are ignored.
|
|
113
124
|
EXCLUDE_NEWER_DATE="2024-08-28"
|
|
125
|
+
# Pinned versions for Torch and TorchVision to avoid issues with the CUDA version on the CI machine.
|
|
126
|
+
# These versions are compatible with CUDA 11.4 and Python 3.8. They are the latest versions
|
|
127
|
+
# available before 2024-08-28.
|
|
128
|
+
PINNED_TORCH_VERSION="2.4.0+cu118"
|
|
129
|
+
PINNED_TORCHVISION_VERSION="0.19.0+cu118"
|
|
114
130
|
|
|
115
131
|
# Install ffmpeg on Ubuntu.
|
|
116
132
|
. PHONY: install-ffmpeg-ubuntu
|
|
@@ -157,9 +173,16 @@ install-minimal-extras:
|
|
|
157
173
|
# We have to differentiate between Python versions because SuperGradients is not
|
|
158
174
|
# compatible with Python>=3.10. For 3.8 we install the package with all extras,
|
|
159
175
|
# including SuperGradients.
|
|
176
|
+
#
|
|
177
|
+
# Torch and TorchVision are pinned to specific versions to avoid issues with the
|
|
178
|
+
# CUDA version on the CI machine. See PINNED_TORCH_VERSION and PINNED_TORCHVISION_VERSION
|
|
179
|
+
# for the pinned versions.
|
|
160
180
|
.PHONY: install-pinned-3.8
|
|
161
181
|
install-pinned-3.8:
|
|
162
182
|
uv pip install --exclude-newer ${EXCLUDE_NEWER_DATE} --reinstall ${EDITABLE} . --all-extras --requirement pyproject.toml
|
|
183
|
+
uv pip install \
|
|
184
|
+
"torch==${PINNED_TORCH_VERSION}" "torchvision==${PINNED_TORCHVISION_VERSION}" \
|
|
185
|
+
--index-url https://download.pytorch.org/whl/cu118 --reinstall
|
|
163
186
|
|
|
164
187
|
# Install package for Python 3.11 with dependencies pinned to the latest compatible
|
|
165
188
|
# version available at EXCLUDE_NEWER_DATE.
|
|
@@ -168,6 +191,9 @@ install-pinned-3.8:
|
|
|
168
191
|
.PHONY: install-pinned-3.11
|
|
169
192
|
install-pinned-3.11:
|
|
170
193
|
uv pip install --exclude-newer ${EXCLUDE_NEWER_DATE} --reinstall ${EDITABLE} ".${EXTRAS}"
|
|
194
|
+
uv pip install \
|
|
195
|
+
"torch==${PINNED_TORCH_VERSION}" "torchvision==${PINNED_TORCHVISION_VERSION}" \
|
|
196
|
+
--index-url https://download.pytorch.org/whl/cu118 --reinstall
|
|
171
197
|
|
|
172
198
|
# Install package with the latest dependencies.
|
|
173
199
|
.PHONY: install-latest
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: lightly_train
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Train models with self-supervised learning in a single command
|
|
5
5
|
Author: Lightly Team
|
|
6
6
|
License: AGPL-3.0
|
|
@@ -8,26 +8,38 @@ Keywords: machine-learning,computer-vision,deep-learning,self-supervised-learnin
|
|
|
8
8
|
Requires-Python: >=3.8
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
License-File: LICENSE
|
|
11
|
+
Requires-Dist: eval-type-backport>=0.2
|
|
11
12
|
Requires-Dist: lightly>=1.5.12
|
|
12
13
|
Requires-Dist: omegaconf>=2.3
|
|
13
14
|
Requires-Dist: psutil>=5.0
|
|
15
|
+
Requires-Dist: pyarrow>=15.0.0
|
|
14
16
|
Requires-Dist: pytorch_lightning>=2.1
|
|
15
17
|
Requires-Dist: torch>=2.0.0
|
|
16
18
|
Requires-Dist: torchvision>=0.15.1
|
|
17
19
|
Requires-Dist: tqdm>=4.0.0
|
|
18
20
|
Provides-Extra: dev
|
|
19
|
-
Requires-Dist:
|
|
21
|
+
Requires-Dist: licenseheaders>=0.8.8; extra == "dev"
|
|
22
|
+
Requires-Dist: mdformat>=0.7.17; extra == "dev"
|
|
23
|
+
Requires-Dist: mypy>=1.10.0; extra == "dev"
|
|
20
24
|
Requires-Dist: pytest-mock>=3.14.0; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
21
26
|
Requires-Dist: ruff>=0.4.0; extra == "dev"
|
|
22
|
-
Requires-Dist:
|
|
27
|
+
Requires-Dist: types-pillow>=10.2.0; extra == "dev"
|
|
23
28
|
Requires-Dist: types-tqdm>=4.0.0; extra == "dev"
|
|
24
|
-
Requires-Dist:
|
|
29
|
+
Requires-Dist: furo>=2024.04.27; extra == "dev"
|
|
30
|
+
Requires-Dist: myst_parser>=3.0; extra == "dev"
|
|
31
|
+
Requires-Dist: sphinx-autoapi>=3.0; extra == "dev"
|
|
32
|
+
Requires-Dist: sphinx-copybutton>=0.5.2; extra == "dev"
|
|
33
|
+
Requires-Dist: sphinx-inline-tabs>=2023.4.21; extra == "dev"
|
|
34
|
+
Requires-Dist: sphinx>=7.1; extra == "dev"
|
|
25
35
|
Provides-Extra: super-gradients
|
|
26
36
|
Requires-Dist: super-gradients>=3.7; extra == "super-gradients"
|
|
27
37
|
Provides-Extra: tensorboard
|
|
28
38
|
Requires-Dist: tensorboard>=2.10.0; extra == "tensorboard"
|
|
29
39
|
Provides-Extra: timm
|
|
30
40
|
Requires-Dist: timm>=1.0.3; extra == "timm"
|
|
41
|
+
Provides-Extra: ultralytics
|
|
42
|
+
Requires-Dist: ultralytics>=8.1.0; extra == "ultralytics"
|
|
31
43
|
Provides-Extra: wandb
|
|
32
44
|
Requires-Dist: wandb>=0.12.10; extra == "wandb"
|
|
33
45
|
|
|
@@ -35,13 +47,12 @@ Requires-Dist: wandb>=0.12.10; extra == "wandb"
|
|
|
35
47
|
|
|
36
48
|
*Train models with self-supervised learning in a single command*
|
|
37
49
|
|
|
38
|
-
|
|
39
50
|
## Why LightlyTrain
|
|
40
51
|
|
|
41
52
|
LightlyTrain uses self-supervised learning (SSL) to train models on large datasets
|
|
42
53
|
without the need for labels. It provides simple Python, Command Line, and Docker
|
|
43
54
|
interfaces to train models with popular SSL methods such as SimCLR or DINO. The trained
|
|
44
|
-
models are ideal starting points for fine-tuning on downstream tasks such as image
|
|
55
|
+
models are ideal starting points for fine-tuning on downstream tasks such as image
|
|
45
56
|
classification, object detection, and segmentation or for generating image embeddings.
|
|
46
57
|
Models trained with LightlyTrain result in improved performance, faster convergence, and
|
|
47
58
|
better generalization compared to models trained without SSL. Image embeddings created
|
|
@@ -51,19 +62,18 @@ and seamlessly extend to new classes due to the unsupervised nature of SSL.
|
|
|
51
62
|
Lightly is the expert in SSL for computer vision and developed LightlyTrain to simplify
|
|
52
63
|
model training for any task and dataset.
|
|
53
64
|
|
|
54
|
-
|
|
55
65
|
## Features
|
|
56
66
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
- Train models on any image data without labels
|
|
68
|
+
- Train models from popular libraries such as [torchvision](https://github.com/pytorch/vision), [TIMM](https://github.com/huggingface/pytorch-image-models), [Ultralytics](https://github.com/ultralytics/ultralytics), and [SuperGradients](https://github.com/Deci-AI/super-gradients)
|
|
69
|
+
- Train custom models
|
|
70
|
+
- No SSL expertise required
|
|
71
|
+
- Automatic SSL method selection (soon!)
|
|
72
|
+
- Python, Command Line, and Docker support
|
|
73
|
+
- Multi-GPU and multi-node (soon!) support
|
|
74
|
+
- Export models for fine-tuning or inference
|
|
75
|
+
- Generate and export image embeddings
|
|
76
|
+
- Monitor training progress with TensorBoard, Weights & Biases, Neptune, etc. (soon!)
|
|
67
77
|
|
|
68
78
|
## License
|
|
69
79
|
|
|
@@ -72,6 +82,6 @@ at info@lightly.ai for more information.
|
|
|
72
82
|
|
|
73
83
|
## Contact
|
|
74
84
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
85
|
+
- [**Email**](info@lightly.ai)
|
|
86
|
+
- [**Website**](https://www.lightly.ai/lightlytrain)
|
|
87
|
+
- [**Discord**](https://discord.gg/xvNJW94)
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
*Train models with self-supervised learning in a single command*
|
|
4
4
|
|
|
5
|
-
|
|
6
5
|
## Why LightlyTrain
|
|
7
6
|
|
|
8
7
|
LightlyTrain uses self-supervised learning (SSL) to train models on large datasets
|
|
9
8
|
without the need for labels. It provides simple Python, Command Line, and Docker
|
|
10
9
|
interfaces to train models with popular SSL methods such as SimCLR or DINO. The trained
|
|
11
|
-
models are ideal starting points for fine-tuning on downstream tasks such as image
|
|
10
|
+
models are ideal starting points for fine-tuning on downstream tasks such as image
|
|
12
11
|
classification, object detection, and segmentation or for generating image embeddings.
|
|
13
12
|
Models trained with LightlyTrain result in improved performance, faster convergence, and
|
|
14
13
|
better generalization compared to models trained without SSL. Image embeddings created
|
|
@@ -18,19 +17,18 @@ and seamlessly extend to new classes due to the unsupervised nature of SSL.
|
|
|
18
17
|
Lightly is the expert in SSL for computer vision and developed LightlyTrain to simplify
|
|
19
18
|
model training for any task and dataset.
|
|
20
19
|
|
|
21
|
-
|
|
22
20
|
## Features
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
22
|
+
- Train models on any image data without labels
|
|
23
|
+
- Train models from popular libraries such as [torchvision](https://github.com/pytorch/vision), [TIMM](https://github.com/huggingface/pytorch-image-models), [Ultralytics](https://github.com/ultralytics/ultralytics), and [SuperGradients](https://github.com/Deci-AI/super-gradients)
|
|
24
|
+
- Train custom models
|
|
25
|
+
- No SSL expertise required
|
|
26
|
+
- Automatic SSL method selection (soon!)
|
|
27
|
+
- Python, Command Line, and Docker support
|
|
28
|
+
- Multi-GPU and multi-node (soon!) support
|
|
29
|
+
- Export models for fine-tuning or inference
|
|
30
|
+
- Generate and export image embeddings
|
|
31
|
+
- Monitor training progress with TensorBoard, Weights & Biases, Neptune, etc. (soon!)
|
|
34
32
|
|
|
35
33
|
## License
|
|
36
34
|
|
|
@@ -39,6 +37,6 @@ at info@lightly.ai for more information.
|
|
|
39
37
|
|
|
40
38
|
## Contact
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
- [**Email**](info@lightly.ai)
|
|
41
|
+
- [**Website**](https://www.lightly.ai/lightlytrain)
|
|
42
|
+
- [**Discord**](https://discord.gg/xvNJW94)
|