careamics 0.0.16__tar.gz → 0.0.17__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.
Potentially problematic release.
This version of careamics might be problematic. Click here for more details.
- {careamics-0.0.16 → careamics-0.0.17}/.github/dependabot.yml +1 -1
- careamics-0.0.17/.github/workflows/ci.yml +98 -0
- careamics-0.0.17/.github/workflows/ci_lvae.yml +45 -0
- careamics-0.0.17/.github/workflows/codecov.yml +43 -0
- {careamics-0.0.16 → careamics-0.0.17}/.pre-commit-config.yaml +4 -5
- {careamics-0.0.16 → careamics-0.0.17}/PKG-INFO +5 -11
- {careamics-0.0.16 → careamics-0.0.17}/pyproject.toml +15 -12
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/careamist.py +7 -4
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/configuration.py +6 -55
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/configuration_factories.py +22 -12
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/data_model.py +49 -9
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/ng_data_model.py +167 -2
- careamics-0.0.17/src/careamics/config/data/patch_filter/__init__.py +15 -0
- careamics-0.0.17/src/careamics/config/data/patch_filter/filter_model.py +16 -0
- careamics-0.0.17/src/careamics/config/data/patch_filter/mask_filter_model.py +17 -0
- careamics-0.0.17/src/careamics/config/data/patch_filter/max_filter_model.py +15 -0
- careamics-0.0.17/src/careamics/config/data/patch_filter/meanstd_filter_model.py +18 -0
- careamics-0.0.17/src/careamics/config/data/patch_filter/shannon_filter_model.py +15 -0
- careamics-0.0.17/src/careamics/config/support/supported_filters.py +17 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/dataset.py +57 -5
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/factory.py +101 -18
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/__init__.py +20 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/coordinate_filter_protocol.py +27 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/filter_factory.py +94 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/mask_filter.py +95 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/max_filter.py +188 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/mean_std_filter.py +218 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/patch_filter_protocol.py +50 -0
- careamics-0.0.17/src/careamics/dataset_ng/patch_filter/shannon_filter.py +188 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/data_stats_callback.py +13 -3
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/data_module.py +79 -2
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/lightning_module.py +4 -3
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/microsplit_data_module.py +15 -10
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/eval_utils.py +46 -24
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/likelihoods.py +2 -1
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/prediction_outputs.py +3 -2
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/stitch_prediction.py +17 -6
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/version.py +4 -4
- {careamics-0.0.16 → careamics-0.0.17}/tests/conftest.py +9 -1
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/dataset/test_dataset.py +84 -0
- careamics-0.0.17/tests/dataset_ng/patch_filter/test_mask_filter.py +33 -0
- careamics-0.0.17/tests/dataset_ng/patch_filter/test_max_filter.py +21 -0
- careamics-0.0.17/tests/dataset_ng/patch_filter/test_mean_std_patch_filter.py +28 -0
- careamics-0.0.17/tests/dataset_ng/patch_filter/test_shannon_entropy_filter.py +29 -0
- careamics-0.0.17/tests/smoke_test.py +22 -0
- careamics-0.0.17/uv.lock +4313 -0
- careamics-0.0.16/.github/TEST_FAIL_TEMPLATE.md +0 -12
- careamics-0.0.16/.github/workflows/ci.yml +0 -107
- careamics-0.0.16/.github/workflows/ci_macos.yml +0 -67
- careamics-0.0.16/.github/workflows/codecov.yml +0 -46
- careamics-0.0.16/.github/workflows/lvae.yml +0 -62
- {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/example_report.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/interoperability_request.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.github/ISSUE_TEMPLATE/refactoring_suggestion.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.github/pull_request_template.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/.gitignore +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/CODE_OF_CONDUCT.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/LICENSE +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/README.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/codecov.yml +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/mypy.ini +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/conf.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/main.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/cli/utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/care_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/hdn_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/microsplit_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/n2n_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/n2v_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/unet_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/algorithms/vae_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/architecture_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/lvae_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/architectures/unet_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/callback_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/configuration_io.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/_overlapping_patched_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/_patched_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/random_patching_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/sequential_patching_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/tiled_patching_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/data/patching_strategies/whole_patching_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/inference_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/likelihood_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/loss_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/nm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/optimizer_models.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_activations.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_algorithms.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_architectures.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_data.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_loggers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_losses.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_optimizers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_patching_strategies.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_struct_axis.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/support/supported_transforms.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/tile_information.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/training_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/n2v_manipulate_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/normalize_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/transform_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/transform_unions.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/xy_flip_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/transformations/xy_random_rotate90_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/validators/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/validators/model_validators.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/config/validators/validator_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/conftest.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/iterate_over_files.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/in_memory_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/iterable_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/iterable_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/random_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/sequential_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/lvae_tiled_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset/tiling/tiled_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/README.md +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/bsd68_demo.ipynb +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/care_U2OS_demo.ipynb +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_datamodule.ipynb +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_dataset.ipynb +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/demo_patch_extractor.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/legacy_interoperability.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/demo_custom_image_stack_loader.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/czi_image_stack.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/image_stack_protocol.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/in_memory_image_stack.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack/zarr_image_stack.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/patch_extractor.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/random_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/sequential_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/tiling_strategy.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/dataset_ng/patching_strategies/whole_sample.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/read/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/read/get_func.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/read/tiff.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/write/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/write/get_func.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/file_io/write/tiff.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/hyperparameters_callback.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/care_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/dataset_ng/lightning_modules/unet_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/predict_data_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lightning/train_data_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/fcn/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/fcn/losses.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/loss_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/lvae/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/lvae/loss_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/losses/lvae/losses.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/calibration.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/config.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/lc_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/ms_dataset_ref.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/multich_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/multicrop_dset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/multifile_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/types.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/data_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/index_manager.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/dataset/utils/index_switcher.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/get_config.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/lightning_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/metrics.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/train_lvae.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/lvae_training/train_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/bioimage_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/cover_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bioimage/model_description.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/bmz_io.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/model_io/model_io_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/activation.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/layers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/layers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/lvae.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/noise_models.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/stochastic.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/lvae/utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/model_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/models/unet.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/lvae_prediction.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/prediction_utils/lvae_tiling_manager.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/py.typed +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/compose.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/n2v_manipulate.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/n2v_manipulate_torch.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/normalize.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/pixel_manipulation.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/pixel_manipulation_torch.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/struct_mask_parameters.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/transform.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/tta.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/xy_flip.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/transforms/xy_random_rotate90.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/autocorrelation.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/base_enum.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/context.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/lightning_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/logging.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/metrics.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/path_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/plotting.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/ram.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/receptive_field.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/serializers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/src/careamics/utils/torch_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/cli/__init__.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/cli/test_conf.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/cli/test_main.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/algorithms/test_care_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/algorithms/test_n2n_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/algorithms/test_n2v_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/architectures/test_architecture_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/architectures/test_lvae_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/architectures/test_unet_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/data/patching_strategies/test_strategies.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/data/test_data_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/data/test_ng_data_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/support/test_supported_data.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/support/test_supported_optimizers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_callback_models.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_configuration.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_configuration_factories.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_configuration_io.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_inference_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_n2v_preprocessing.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_optimizers_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_tile_information.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_unet_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/test_vae_algorithm_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_normalize_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_xy_flip_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/validators/test_model_validators.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/config/validators/test_validator_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/dataset_utils/test_list_files.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/patching/test_patching_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/patching/test_random_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/patching/test_sequential_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_in_memory_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_iterable_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_iterable_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/tiling/test_collate_tiles.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/tiling/test_lvae_tiled_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset/tiling/test_tiled_patching.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patch_extractor/image_stack/test_czi_image_stack.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patch_extractor/image_stack/test_import_czi_image_stack.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patch_extractor/image_stack/test_zarr_image_stack.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_all_strategies.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_random_patching_ng.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_sequential_patching_ng.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/dataset_ng/patching_strategies/test_tiling_strategy.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/read/test_get_read_func.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/read/test_read_tiff.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/write/test_get_write_func.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/file_io/write/test_write_tiff.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_LVAE_lightning_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_lightning_api.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_lightning_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_lightning_module_onnx_exportability.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_microsplit_train_datamodule.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_predict_data_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/lightning/test_train_data_module.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/likelihood_modules/test_likelihoods.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/losses/test_lvae_losses.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/model_io/test_bmz_io.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/models/lvae/test_lvae_architecture.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/models/lvae/test_noise_model.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/models/lvae/test_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/models/test_model_factory.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/models/test_unet.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/prediction_utils/test_lvae_prediction.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/prediction_utils/test_prediction_outputs.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/prediction_utils/test_stitch_prediction.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/test_careamist.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/test_conftest.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_compose.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_manipulate_n2v.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_normalize.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_pixel_manipulation.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_tta.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_xy_flip.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/transforms/test_xy_random_rotate90.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_autocorrelation.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_base_enum.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_context.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_lightning_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_logging.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_metrics.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_serializers.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_torch_utils.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_version.py +0 -0
- {careamics-0.0.16 → careamics-0.0.17}/tests/utils/test_wandb.py +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- "v*"
|
|
9
|
+
pull_request:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
schedule:
|
|
12
|
+
# run every week (for --pre release tests)
|
|
13
|
+
- cron: "0 0 * * 0"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
check-manifest:
|
|
17
|
+
# check-manifest is a tool that checks that all files in version control are
|
|
18
|
+
# included in the sdist (unless explicitly excluded)
|
|
19
|
+
runs-on: ubuntu-latest
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v3
|
|
22
|
+
- run: pipx run check-manifest
|
|
23
|
+
|
|
24
|
+
test:
|
|
25
|
+
name: ${{ matrix.platform }} (${{ matrix.python-version }})
|
|
26
|
+
runs-on: ${{ matrix.platform }}
|
|
27
|
+
strategy:
|
|
28
|
+
fail-fast: false
|
|
29
|
+
matrix:
|
|
30
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
31
|
+
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
|
|
32
|
+
platform: [ubuntu-latest, windows-latest, macos-latest ]
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: 🛑 Cancel Previous Runs
|
|
36
|
+
uses: styfle/cancel-workflow-action@0.11.0
|
|
37
|
+
with:
|
|
38
|
+
access_token: ${{ github.token }}
|
|
39
|
+
|
|
40
|
+
- uses: actions/checkout@v5
|
|
41
|
+
|
|
42
|
+
- name: Install uv
|
|
43
|
+
uses: astral-sh/setup-uv@v6
|
|
44
|
+
with:
|
|
45
|
+
# Install a specific version of uv.
|
|
46
|
+
version: "0.9.0"
|
|
47
|
+
enable-cache: true
|
|
48
|
+
python-version: ${{ matrix.python-version }}
|
|
49
|
+
|
|
50
|
+
- name: Install the project
|
|
51
|
+
run: uv sync --all-extras --dev
|
|
52
|
+
|
|
53
|
+
- name: 🧪 Run tests
|
|
54
|
+
run: uv run pytest --color=yes -m "not lvae"
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
deploy:
|
|
58
|
+
name: Release
|
|
59
|
+
needs: test
|
|
60
|
+
if: success() && startsWith(github.ref, 'refs/tags/') && github.event_name != 'schedule'
|
|
61
|
+
runs-on: ubuntu-latest
|
|
62
|
+
|
|
63
|
+
permissions:
|
|
64
|
+
# IMPORTANT: this permission is mandatory for trusted publishing
|
|
65
|
+
id-token: write
|
|
66
|
+
|
|
67
|
+
# This permission allows writing releases
|
|
68
|
+
contents: write
|
|
69
|
+
|
|
70
|
+
steps:
|
|
71
|
+
- uses: actions/checkout@v5
|
|
72
|
+
with:
|
|
73
|
+
fetch-depth: 0
|
|
74
|
+
|
|
75
|
+
- name: Install uv
|
|
76
|
+
uses: astral-sh/setup-uv@v6
|
|
77
|
+
with:
|
|
78
|
+
# Install a specific version of uv.
|
|
79
|
+
version: "0.9.0"
|
|
80
|
+
enable-cache: true
|
|
81
|
+
python-version: 3.12
|
|
82
|
+
|
|
83
|
+
- name: Build
|
|
84
|
+
run: uv build
|
|
85
|
+
|
|
86
|
+
# Check that basic features work and we didn't miss to include crucial files
|
|
87
|
+
- name: Smoke test (wheel)
|
|
88
|
+
run: uv run --isolated --no-project --with dist/*.whl tests/smoke_test.py
|
|
89
|
+
|
|
90
|
+
- name: Smoke test (source distribution)
|
|
91
|
+
run: uv run --isolated --no-project --with dist/*.tar.gz tests/smoke_test.py
|
|
92
|
+
|
|
93
|
+
- name: Publish
|
|
94
|
+
run: uv publish
|
|
95
|
+
|
|
96
|
+
- uses: softprops/action-gh-release@v2
|
|
97
|
+
with:
|
|
98
|
+
generate_release_notes: true
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
name: CI-lvae-uv
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- "v*"
|
|
9
|
+
pull_request:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
schedule:
|
|
12
|
+
# run every week (for --pre release tests)
|
|
13
|
+
- cron: "0 0 * * 0"
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
test:
|
|
17
|
+
name: LVAE py3.12 (ubuntu-latest)
|
|
18
|
+
runs-on: ubuntu-latest
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
python-version: ["3.12"]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: 🛑 Cancel Previous Runs
|
|
26
|
+
uses: styfle/cancel-workflow-action@0.11.0
|
|
27
|
+
with:
|
|
28
|
+
access_token: ${{ github.token }}
|
|
29
|
+
|
|
30
|
+
- uses: actions/checkout@v5
|
|
31
|
+
|
|
32
|
+
- name: Install uv
|
|
33
|
+
uses: astral-sh/setup-uv@v6
|
|
34
|
+
with:
|
|
35
|
+
# Install a specific version of uv.
|
|
36
|
+
version: "0.9.0"
|
|
37
|
+
enable-cache: true
|
|
38
|
+
python-version: ${{ matrix.python-version }}
|
|
39
|
+
|
|
40
|
+
- name: Install the project
|
|
41
|
+
run: uv sync --all-extras --dev
|
|
42
|
+
|
|
43
|
+
- name: 🧪 Run tests
|
|
44
|
+
# does not run doctests
|
|
45
|
+
run: uv run pytest tests --color=yes -m lvae
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
name: codecov
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
codecov:
|
|
10
|
+
name: codecov update
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
strategy:
|
|
13
|
+
fail-fast: false
|
|
14
|
+
matrix:
|
|
15
|
+
python-version: ["3.12"]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- name: 🛑 Cancel Previous Runs
|
|
19
|
+
uses: styfle/cancel-workflow-action@0.11.0
|
|
20
|
+
with:
|
|
21
|
+
access_token: ${{ github.token }}
|
|
22
|
+
|
|
23
|
+
- name: Checkout code
|
|
24
|
+
uses: actions/checkout@v5
|
|
25
|
+
|
|
26
|
+
- name: Install uv
|
|
27
|
+
uses: astral-sh/setup-uv@v6
|
|
28
|
+
with:
|
|
29
|
+
# Install a specific version of uv.
|
|
30
|
+
version: "0.9.0"
|
|
31
|
+
enable-cache: true
|
|
32
|
+
python-version: ${{ matrix.python-version }}
|
|
33
|
+
|
|
34
|
+
- name: Install the project
|
|
35
|
+
run: uv sync --all-extras --dev
|
|
36
|
+
|
|
37
|
+
- name: 🧪 Run Tests
|
|
38
|
+
run: uv run pytest --color=yes --cov --cov-config=pyproject.toml --cov-report=xml --cov-report=term-missing
|
|
39
|
+
|
|
40
|
+
- name: Coverage
|
|
41
|
+
uses: codecov/codecov-action@v5
|
|
42
|
+
with:
|
|
43
|
+
version: v0.7.3
|
|
@@ -14,19 +14,18 @@ repos:
|
|
|
14
14
|
- id: validate-pyproject
|
|
15
15
|
|
|
16
16
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
17
|
-
rev: v0.
|
|
17
|
+
rev: v0.13.3
|
|
18
18
|
hooks:
|
|
19
19
|
- id: ruff
|
|
20
20
|
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^scripts/.*"
|
|
21
|
-
args: [--fix, --target-version, py311]
|
|
22
21
|
|
|
23
|
-
- repo: https://github.com/psf/black
|
|
24
|
-
rev: 25.
|
|
22
|
+
- repo: https://github.com/psf/black-pre-commit-mirror
|
|
23
|
+
rev: 25.9.0
|
|
25
24
|
hooks:
|
|
26
25
|
- id: black
|
|
27
26
|
|
|
28
27
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
29
|
-
rev: v1.
|
|
28
|
+
rev: v1.18.2
|
|
30
29
|
hooks:
|
|
31
30
|
- id: mypy
|
|
32
31
|
files: "^src/"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: careamics
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.17
|
|
4
4
|
Summary: Toolbox for running N2V and friends.
|
|
5
5
|
Project-URL: homepage, https://careamics.github.io/
|
|
6
6
|
Project-URL: repository, https://github.com/CAREamics/careamics
|
|
@@ -16,30 +16,24 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
16
16
|
Classifier: Typing :: Typed
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Requires-Dist: bioimageio-core>=0.9.0
|
|
19
|
-
Requires-Dist: matplotlib<=3.10.
|
|
19
|
+
Requires-Dist: matplotlib<=3.10.7
|
|
20
20
|
Requires-Dist: numpy>=1.21
|
|
21
21
|
Requires-Dist: numpy>=2.1.0; python_version >= '3.13'
|
|
22
22
|
Requires-Dist: pillow<=11.3.0
|
|
23
23
|
Requires-Dist: psutil<=7.1.0
|
|
24
|
-
Requires-Dist: pydantic<=2.12,>=2.11
|
|
24
|
+
Requires-Dist: pydantic<=2.12.2,>=2.11
|
|
25
25
|
Requires-Dist: pytorch-lightning<=2.5.5,>=2.2
|
|
26
26
|
Requires-Dist: pyyaml!=6.0.0,<=6.0.3
|
|
27
27
|
Requires-Dist: scikit-image<=0.25.2
|
|
28
|
-
Requires-Dist: tifffile<=2025.
|
|
28
|
+
Requires-Dist: tifffile<=2025.10.4
|
|
29
29
|
Requires-Dist: torch<=2.8.0,>=2.0
|
|
30
|
+
Requires-Dist: torchmetrics<1.5.0,>=0.11.0
|
|
30
31
|
Requires-Dist: torchvision<=0.23.0
|
|
31
32
|
Requires-Dist: typer<=0.19.2,>=0.12.3
|
|
32
33
|
Requires-Dist: validators<=0.35.0
|
|
33
34
|
Requires-Dist: zarr<4.0.0,>=3.0.0
|
|
34
35
|
Provides-Extra: czi
|
|
35
36
|
Requires-Dist: pylibczirw<6.0.0,>=4.1.2; extra == 'czi'
|
|
36
|
-
Provides-Extra: dev
|
|
37
|
-
Requires-Dist: ml-dtypes>=0.5.0; extra == 'dev'
|
|
38
|
-
Requires-Dist: onnx; extra == 'dev'
|
|
39
|
-
Requires-Dist: pre-commit; extra == 'dev'
|
|
40
|
-
Requires-Dist: pytest; extra == 'dev'
|
|
41
|
-
Requires-Dist: pytest-cov; extra == 'dev'
|
|
42
|
-
Requires-Dist: sybil; extra == 'dev'
|
|
43
37
|
Provides-Extra: examples
|
|
44
38
|
Requires-Dist: careamics-portfolio; extra == 'examples'
|
|
45
39
|
Requires-Dist: jupyter; extra == 'examples'
|
|
@@ -46,17 +46,18 @@ dependencies = [
|
|
|
46
46
|
'torch>=2.0,<=2.8.0',
|
|
47
47
|
'torchvision<=0.23.0',
|
|
48
48
|
'bioimageio.core>=0.9.0',
|
|
49
|
-
'tifffile<=2025.
|
|
49
|
+
'tifffile<=2025.10.4',
|
|
50
50
|
'psutil<=7.1.0',
|
|
51
|
-
'pydantic>=2.11,<=2.12',
|
|
51
|
+
'pydantic>=2.11,<=2.12.2',
|
|
52
52
|
'pytorch_lightning>=2.2,<=2.5.5',
|
|
53
53
|
'pyyaml!=6.0.0,<=6.0.3',
|
|
54
54
|
'typer>=0.12.3,<=0.19.2',
|
|
55
55
|
'scikit-image<=0.25.2',
|
|
56
56
|
'zarr>=3.0.0,<4.0.0',
|
|
57
57
|
'pillow<=11.3.0',
|
|
58
|
-
'matplotlib<=3.10.
|
|
59
|
-
'validators<=0.35.0'
|
|
58
|
+
'matplotlib<=3.10.7',
|
|
59
|
+
'validators<=0.35.0',
|
|
60
|
+
'torchmetrics>=0.11.0,<1.5.0' # 1.5.0 causes `data_range` mandatory parameter issues
|
|
60
61
|
]
|
|
61
62
|
|
|
62
63
|
[project.optional-dependencies]
|
|
@@ -64,6 +65,14 @@ dependencies = [
|
|
|
64
65
|
# czi format
|
|
65
66
|
czi = ['pylibCZIrw>=4.1.2,<6.0.0']
|
|
66
67
|
|
|
68
|
+
# notebooks
|
|
69
|
+
examples = ["jupyter", "careamics-portfolio"]
|
|
70
|
+
|
|
71
|
+
# loggers
|
|
72
|
+
wandb = ["wandb"]
|
|
73
|
+
tensorboard = ["tensorboard", "protobuf==5.29.1"]
|
|
74
|
+
|
|
75
|
+
[dependency-groups]
|
|
67
76
|
# development dependencies and tooling
|
|
68
77
|
dev = [
|
|
69
78
|
"pre-commit",
|
|
@@ -76,13 +85,6 @@ dev = [
|
|
|
76
85
|
"ml_dtypes>=0.5.0" # required by onnx, causes issues in gh runners with py313
|
|
77
86
|
]
|
|
78
87
|
|
|
79
|
-
# notebooks
|
|
80
|
-
examples = ["jupyter", "careamics-portfolio"]
|
|
81
|
-
|
|
82
|
-
# loggers
|
|
83
|
-
wandb = ["wandb"]
|
|
84
|
-
tensorboard = ["tensorboard", "protobuf==5.29.1"]
|
|
85
|
-
|
|
86
88
|
[project.urls]
|
|
87
89
|
homepage = "https://careamics.github.io/"
|
|
88
90
|
repository = "https://github.com/CAREamics/careamics"
|
|
@@ -93,8 +95,9 @@ careamics = "careamics.cli.main:run"
|
|
|
93
95
|
|
|
94
96
|
# https://beta.ruff.rs/docs
|
|
95
97
|
[tool.ruff]
|
|
98
|
+
fix = true
|
|
96
99
|
line-length = 88
|
|
97
|
-
target-version = "
|
|
100
|
+
target-version = "py311" # is this needed? see .pre-commit-config.yaml
|
|
98
101
|
src = ["src"]
|
|
99
102
|
lint.select = [
|
|
100
103
|
"E", # style errors
|
|
@@ -41,6 +41,7 @@ logger = get_logger(__name__)
|
|
|
41
41
|
LOGGER_TYPES = list[Union[TensorBoardLogger, WandbLogger, CSVLogger]]
|
|
42
42
|
|
|
43
43
|
|
|
44
|
+
# TODO type ignore have been added because of the czi data type in data configuration
|
|
44
45
|
class CAREamist:
|
|
45
46
|
"""Main CAREamics class, allowing training and prediction using various algorithms.
|
|
46
47
|
|
|
@@ -674,7 +675,7 @@ class CAREamist:
|
|
|
674
675
|
# create the prediction
|
|
675
676
|
self.pred_datamodule = create_predict_datamodule(
|
|
676
677
|
pred_data=source,
|
|
677
|
-
data_type=data_type or self.cfg.data_config.data_type,
|
|
678
|
+
data_type=data_type or self.cfg.data_config.data_type, # type: ignore
|
|
678
679
|
axes=axes or self.cfg.data_config.axes,
|
|
679
680
|
image_means=self.cfg.data_config.image_means,
|
|
680
681
|
image_stds=self.cfg.data_config.image_stds,
|
|
@@ -817,14 +818,16 @@ class CAREamist:
|
|
|
817
818
|
|
|
818
819
|
# extract file names
|
|
819
820
|
source_path: Union[Path, str, NDArray]
|
|
820
|
-
source_data_type: Literal["array", "tiff", "
|
|
821
|
+
source_data_type: Literal["array", "tiff", "custom"]
|
|
821
822
|
if isinstance(source, PredictDataModule):
|
|
822
823
|
source_path = source.pred_data
|
|
823
|
-
source_data_type = source.data_type
|
|
824
|
+
source_data_type = source.data_type # type: ignore
|
|
824
825
|
extension_filter = source.extension_filter
|
|
825
826
|
elif isinstance(source, (str | Path)):
|
|
826
827
|
source_path = source
|
|
827
|
-
source_data_type =
|
|
828
|
+
source_data_type = (
|
|
829
|
+
data_type or self.cfg.data_config.data_type # type: ignore
|
|
830
|
+
)
|
|
828
831
|
extension_filter = SupportedData.get_extension_pattern(
|
|
829
832
|
SupportedData(source_data_type)
|
|
830
833
|
)
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import re
|
|
6
|
-
from collections.abc import Callable
|
|
7
6
|
from pprint import pformat
|
|
8
7
|
from typing import Any, Literal, Self, Union
|
|
9
8
|
|
|
10
9
|
import numpy as np
|
|
11
10
|
from bioimageio.spec.generic.v0_3 import CiteEntry
|
|
12
11
|
from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
|
|
13
|
-
from pydantic.main import IncEx
|
|
14
12
|
|
|
15
13
|
from careamics.config.algorithms import (
|
|
16
14
|
CAREAlgorithm,
|
|
@@ -343,19 +341,7 @@ class Configuration(BaseModel):
|
|
|
343
341
|
|
|
344
342
|
def model_dump(
|
|
345
343
|
self,
|
|
346
|
-
|
|
347
|
-
mode: Literal["json", "python"] | str = "python",
|
|
348
|
-
include: IncEx | None = None,
|
|
349
|
-
exclude: IncEx | None = None,
|
|
350
|
-
context: Any | None = None,
|
|
351
|
-
by_alias: bool | None = False,
|
|
352
|
-
exclude_unset: bool = False,
|
|
353
|
-
exclude_defaults: bool = False,
|
|
354
|
-
exclude_none: bool = True,
|
|
355
|
-
round_trip: bool = False,
|
|
356
|
-
warnings: bool | Literal["none", "warn", "error"] = True,
|
|
357
|
-
fallback: Callable[[Any], Any] | None = None,
|
|
358
|
-
serialize_as_any: bool = False,
|
|
344
|
+
**kwargs: Any,
|
|
359
345
|
) -> dict[str, Any]:
|
|
360
346
|
"""
|
|
361
347
|
Override model_dump method in order to set default values.
|
|
@@ -365,50 +351,15 @@ class Configuration(BaseModel):
|
|
|
365
351
|
|
|
366
352
|
Parameters
|
|
367
353
|
----------
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
include : Any | None, default=None
|
|
371
|
-
Attributes to include.
|
|
372
|
-
exclude : Any | None, default=None
|
|
373
|
-
Attributes to exclude.
|
|
374
|
-
context : Any | None, default=None
|
|
375
|
-
Additional context to pass to the serialization functions.
|
|
376
|
-
by_alias : bool, default=False
|
|
377
|
-
Whether to use attribute aliases.
|
|
378
|
-
exclude_unset : bool, default=False
|
|
379
|
-
Whether to exclude fields that are not set.
|
|
380
|
-
exclude_defaults : bool, default=False
|
|
381
|
-
Whether to exclude fields that have default values.
|
|
382
|
-
exclude_none : bool, default=true
|
|
383
|
-
Whether to exclude fields that have None values.
|
|
384
|
-
round_trip : bool, default=False
|
|
385
|
-
Whether to dump and load the data to ensure that the output is a valid
|
|
386
|
-
representation.
|
|
387
|
-
warnings : bool | Literal['none', 'warn', 'error'], default=True
|
|
388
|
-
Whether to emit warnings.
|
|
389
|
-
fallback : Callable[[Any], Any] | None, default=None
|
|
390
|
-
A function to call when an unknown value is encountered.
|
|
391
|
-
serialize_as_any : bool, default=False
|
|
392
|
-
Whether to serialize all types as Any.
|
|
354
|
+
**kwargs : Any
|
|
355
|
+
Additional arguments to pass to the parent model_dump method.
|
|
393
356
|
|
|
394
357
|
Returns
|
|
395
358
|
-------
|
|
396
359
|
dict
|
|
397
360
|
Dictionary containing the model parameters.
|
|
398
361
|
"""
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
include=include,
|
|
402
|
-
exclude=exclude,
|
|
403
|
-
context=context,
|
|
404
|
-
by_alias=by_alias,
|
|
405
|
-
exclude_unset=exclude_unset,
|
|
406
|
-
exclude_defaults=exclude_defaults,
|
|
407
|
-
exclude_none=exclude_none,
|
|
408
|
-
round_trip=round_trip,
|
|
409
|
-
warnings=warnings,
|
|
410
|
-
fallback=fallback,
|
|
411
|
-
serialize_as_any=serialize_as_any,
|
|
412
|
-
)
|
|
362
|
+
if "exclude_none" not in kwargs:
|
|
363
|
+
kwargs["exclude_none"] = True
|
|
413
364
|
|
|
414
|
-
return
|
|
365
|
+
return super().model_dump(**kwargs)
|
|
@@ -311,6 +311,10 @@ def _create_microsplit_data_configuration(
|
|
|
311
311
|
Axes of the data.
|
|
312
312
|
patch_size : list of int
|
|
313
313
|
Size of the patches along the spatial dimensions.
|
|
314
|
+
grid_size : int
|
|
315
|
+
Grid size for patch extraction.
|
|
316
|
+
multiscale_count : int
|
|
317
|
+
Number of LC scales.
|
|
314
318
|
batch_size : int
|
|
315
319
|
Batch size.
|
|
316
320
|
augmentations : list of transforms
|
|
@@ -1610,6 +1614,12 @@ def get_likelihood_config(
|
|
|
1610
1614
|
]:
|
|
1611
1615
|
"""Get the likelihood configuration for split models.
|
|
1612
1616
|
|
|
1617
|
+
Returns a tuple containing the following optional entries:
|
|
1618
|
+
- GaussianLikelihoodConfig: Gaussian likelihood configuration for musplit losses
|
|
1619
|
+
- MultiChannelNMConfig: Multi-channel noise model configuration for denoisplit
|
|
1620
|
+
losses
|
|
1621
|
+
- NMLikelihoodConfig: Noise model likelihood configuration for denoisplit losses
|
|
1622
|
+
|
|
1613
1623
|
Parameters
|
|
1614
1624
|
----------
|
|
1615
1625
|
loss_type : Literal["musplit", "denoisplit", "denoisplit_musplit"]
|
|
@@ -1629,15 +1639,12 @@ def get_likelihood_config(
|
|
|
1629
1639
|
|
|
1630
1640
|
Returns
|
|
1631
1641
|
-------
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
- MultiChannelNMConfig: Multi-channel noise model configuration for denoisplit
|
|
1639
|
-
losses
|
|
1640
|
-
- NMLikelihoodConfig: Noise model likelihood configuration for denoisplit losses
|
|
1642
|
+
GaussianLikelihoodConfig or None
|
|
1643
|
+
Configuration for the Gaussian likelihood model.
|
|
1644
|
+
MultiChannelNMConfig or None
|
|
1645
|
+
Configuration for the multi-channel noise model.
|
|
1646
|
+
NMLikelihoodConfig or None
|
|
1647
|
+
Configuration for the noise model likelihood.
|
|
1641
1648
|
|
|
1642
1649
|
Raises
|
|
1643
1650
|
------
|
|
@@ -1647,7 +1654,7 @@ def get_likelihood_config(
|
|
|
1647
1654
|
# gaussian likelihood
|
|
1648
1655
|
if loss_type in ["musplit", "denoisplit_musplit"]:
|
|
1649
1656
|
# if predict_logvar is None:
|
|
1650
|
-
#
|
|
1657
|
+
# raise ValueError(f"predict_logvar is required for loss_type '{loss_type}'")
|
|
1651
1658
|
# TODO validators should be in pydantic models
|
|
1652
1659
|
gaussian_lik_config = GaussianLikelihoodConfig(
|
|
1653
1660
|
predict_logvar=predict_logvar,
|
|
@@ -1903,7 +1910,7 @@ def create_microsplit_configuration(
|
|
|
1903
1910
|
decoder_dropout: float = 0.0,
|
|
1904
1911
|
nonlinearity: Literal[
|
|
1905
1912
|
"None", "Sigmoid", "Softmax", "Tanh", "ReLU", "LeakyReLU", "ELU"
|
|
1906
|
-
] = "ReLU",
|
|
1913
|
+
] = "ReLU", # TODO do we need all these?
|
|
1907
1914
|
analytical_kl: bool = False,
|
|
1908
1915
|
predict_logvar: Literal["pixelwise"] = "pixelwise",
|
|
1909
1916
|
logvar_lowerbound: Union[float, None] = None,
|
|
@@ -1943,8 +1950,11 @@ def create_microsplit_configuration(
|
|
|
1943
1950
|
Strides for the decoder convolutional layers, by default (2, 2).
|
|
1944
1951
|
multiscale_count : int, optional
|
|
1945
1952
|
Number of multiscale levels, by default 1.
|
|
1953
|
+
grid_size : int, optional
|
|
1954
|
+
Size of the grid for the lateral context, by default 32.
|
|
1946
1955
|
z_dims : tuple[int, ...], optional
|
|
1947
|
-
List of latent dimensions for each hierarchy level in the LVAE, by default
|
|
1956
|
+
List of latent dimensions for each hierarchy level in the LVAE, by default
|
|
1957
|
+
(128, 128).
|
|
1948
1958
|
output_channels : int, optional
|
|
1949
1959
|
Number of output channels for the model, by default 1.
|
|
1950
1960
|
encoder_n_filters : int, optional
|
|
@@ -207,13 +207,12 @@ class DataConfig(BaseModel):
|
|
|
207
207
|
|
|
208
208
|
@field_validator("train_dataloader_params", "val_dataloader_params", mode="before")
|
|
209
209
|
@classmethod
|
|
210
|
-
def
|
|
210
|
+
def set_default_pin_memory(
|
|
211
211
|
cls, dataloader_params: dict[str, Any]
|
|
212
212
|
) -> dict[str, Any]:
|
|
213
213
|
"""
|
|
214
|
-
Set default dataloader parameters if not provided.
|
|
214
|
+
Set default pin_memory for dataloader parameters if not provided.
|
|
215
215
|
|
|
216
|
-
- If 'num_workers' is not set, it defaults to the number of available CPU cores.
|
|
217
216
|
- If 'pin_memory' is not set, it defaults to True if CUDA is available.
|
|
218
217
|
|
|
219
218
|
Parameters
|
|
@@ -224,21 +223,62 @@ class DataConfig(BaseModel):
|
|
|
224
223
|
Returns
|
|
225
224
|
-------
|
|
226
225
|
dict of {str: Any}
|
|
227
|
-
The dataloader parameters with
|
|
226
|
+
The dataloader parameters with pin_memory default applied.
|
|
227
|
+
"""
|
|
228
|
+
if "pin_memory" not in dataloader_params:
|
|
229
|
+
import torch
|
|
230
|
+
|
|
231
|
+
dataloader_params["pin_memory"] = torch.cuda.is_available()
|
|
232
|
+
|
|
233
|
+
return dataloader_params
|
|
234
|
+
|
|
235
|
+
@field_validator("train_dataloader_params", mode="before")
|
|
236
|
+
@classmethod
|
|
237
|
+
def set_default_train_workers(
|
|
238
|
+
cls, dataloader_params: dict[str, Any]
|
|
239
|
+
) -> dict[str, Any]:
|
|
240
|
+
"""
|
|
241
|
+
Set default num_workers for training dataloader if not provided.
|
|
242
|
+
|
|
243
|
+
- If 'num_workers' is not set, it defaults to the number of available CPU cores.
|
|
244
|
+
|
|
245
|
+
Parameters
|
|
246
|
+
----------
|
|
247
|
+
dataloader_params : dict of {str: Any}
|
|
248
|
+
The training dataloader parameters.
|
|
249
|
+
|
|
250
|
+
Returns
|
|
251
|
+
-------
|
|
252
|
+
dict of {str: Any}
|
|
253
|
+
The dataloader parameters with num_workers default applied.
|
|
228
254
|
"""
|
|
229
255
|
if "num_workers" not in dataloader_params:
|
|
230
|
-
# Use
|
|
256
|
+
# Use 0 workers during tests, otherwise use all available CPU cores
|
|
231
257
|
if "pytest" in sys.modules:
|
|
232
258
|
dataloader_params["num_workers"] = 0
|
|
233
259
|
else:
|
|
234
260
|
dataloader_params["num_workers"] = os.cpu_count()
|
|
235
261
|
|
|
236
|
-
|
|
237
|
-
import torch
|
|
262
|
+
return dataloader_params
|
|
238
263
|
|
|
239
|
-
|
|
264
|
+
@model_validator(mode="after")
|
|
265
|
+
def set_val_workers_to_match_train(self: Self) -> Self:
|
|
266
|
+
"""
|
|
267
|
+
Set validation dataloader num_workers to match training dataloader.
|
|
240
268
|
|
|
241
|
-
|
|
269
|
+
If num_workers is not specified in val_dataloader_params, it will be set to the
|
|
270
|
+
same value as train_dataloader_params["num_workers"].
|
|
271
|
+
|
|
272
|
+
Returns
|
|
273
|
+
-------
|
|
274
|
+
Self
|
|
275
|
+
Validated data model with synchronized num_workers.
|
|
276
|
+
"""
|
|
277
|
+
if "num_workers" not in self.val_dataloader_params:
|
|
278
|
+
self.val_dataloader_params["num_workers"] = self.train_dataloader_params[
|
|
279
|
+
"num_workers"
|
|
280
|
+
]
|
|
281
|
+
return self
|
|
242
282
|
|
|
243
283
|
@field_validator("train_dataloader_params")
|
|
244
284
|
@classmethod
|