careamics 0.0.2__tar.gz → 0.0.4__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.2 → careamics-0.0.4}/.github/workflows/ci.yml +1 -6
- careamics-0.0.4/.github/workflows/codecov.yml +49 -0
- careamics-0.0.4/.github/workflows/lvae.yml +62 -0
- {careamics-0.0.2 → careamics-0.0.4}/.pre-commit-config.yaml +7 -6
- {careamics-0.0.2 → careamics-0.0.4}/PKG-INFO +5 -4
- careamics-0.0.4/codecov.yml +5 -0
- careamics-0.0.4/mypy.ini +17 -0
- {careamics-0.0.2 → careamics-0.0.4}/pyproject.toml +16 -3
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/careamist.py +39 -28
- careamics-0.0.4/src/careamics/cli/__init__.py +5 -0
- careamics-0.0.4/src/careamics/cli/conf.py +391 -0
- careamics-0.0.4/src/careamics/cli/main.py +134 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/__init__.py +7 -3
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/architectures/__init__.py +2 -2
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/architectures/architecture_model.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/architectures/custom_model.py +11 -8
- careamics-0.0.4/src/careamics/config/architectures/lvae_model.py +170 -0
- careamics-0.0.4/src/careamics/config/configuration_factory.py +886 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/configuration_model.py +6 -3
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/data_model.py +31 -20
- careamics-0.0.2/src/careamics/config/algorithm_model.py → careamics-0.0.4/src/careamics/config/fcn_algorithm_model.py +35 -45
- careamics-0.0.4/src/careamics/config/likelihood_model.py +60 -0
- careamics-0.0.4/src/careamics/config/nm_model.py +127 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/optimizer_models.py +3 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_activations.py +1 -0
- careamics-0.0.4/src/careamics/config/support/supported_algorithms.py +33 -0
- careamics-0.0.4/src/careamics/config/support/supported_architectures.py +17 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_losses.py +3 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_optimizers.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_transforms.py +1 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/training_model.py +35 -6
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/transformations/__init__.py +4 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/transformations/n2v_manipulate_model.py +1 -1
- careamics-0.0.4/src/careamics/config/transformations/transform_union.py +20 -0
- careamics-0.0.4/src/careamics/config/vae_algorithm_model.py +137 -0
- careamics-0.0.4/src/careamics/dataset/tiling/lvae_tiled_patching.py +364 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/read/tiff.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/__init__.py +3 -2
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/hyperparameters_callback.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +1 -1
- careamics-0.0.4/src/careamics/lightning/lightning_module.py +634 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/predict_data_module.py +2 -2
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/train_data_module.py +4 -4
- careamics-0.0.4/src/careamics/losses/__init__.py +15 -0
- careamics-0.0.4/src/careamics/losses/fcn/__init__.py +1 -0
- {careamics-0.0.2/src/careamics/losses → careamics-0.0.4/src/careamics/losses/fcn}/losses.py +1 -1
- careamics-0.0.4/src/careamics/losses/loss_factory.py +155 -0
- careamics-0.0.4/src/careamics/losses/lvae/__init__.py +1 -0
- careamics-0.0.4/src/careamics/losses/lvae/loss_utils.py +83 -0
- careamics-0.0.4/src/careamics/losses/lvae/losses.py +445 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/__init__.py +15 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/config.py +123 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/lc_dataset.py +267 -0
- careamics-0.0.2/src/careamics/lvae_training/data_modules.py → careamics-0.0.4/src/careamics/lvae_training/dataset/multich_dataset.py +375 -501
- careamics-0.0.4/src/careamics/lvae_training/dataset/multifile_dataset.py +334 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/types.py +43 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/utils/data_utils.py +114 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +65 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/utils/index_manager.py +232 -0
- careamics-0.0.4/src/careamics/lvae_training/dataset/utils/index_switcher.py +165 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/eval_utils.py +109 -64
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/get_config.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/train_lvae.py +6 -3
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/bioimage/bioimage_utils.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/bioimage/model_description.py +2 -2
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/bmz_io.py +20 -7
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/model_io_utils.py +16 -4
- careamics-0.0.4/src/careamics/models/__init__.py +5 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/activation.py +2 -0
- careamics-0.0.4/src/careamics/models/lvae/__init__.py +3 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/lvae/layers.py +21 -21
- careamics-0.0.4/src/careamics/models/lvae/likelihoods.py +373 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/lvae/lvae.py +60 -148
- careamics-0.0.4/src/careamics/models/lvae/noise_models.py +541 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/lvae/utils.py +2 -2
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/model_factory.py +22 -7
- careamics-0.0.4/src/careamics/prediction_utils/lvae_prediction.py +158 -0
- careamics-0.0.4/src/careamics/prediction_utils/lvae_tiling_manager.py +362 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/prediction_utils/stitch_prediction.py +16 -2
- careamics-0.0.4/src/careamics/transforms/compose.py +182 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/n2v_manipulate.py +6 -2
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/normalize.py +14 -3
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/pixel_manipulation.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/xy_flip.py +16 -6
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/xy_random_rotate90.py +16 -7
- careamics-0.0.4/src/careamics/utils/metrics.py +368 -0
- careamics-0.0.4/src/careamics/utils/serializers.py +60 -0
- careamics-0.0.4/tests/cli/__init__.py +1 -0
- careamics-0.0.4/tests/cli/test_conf.py +37 -0
- careamics-0.0.4/tests/cli/test_main.py +49 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/architectures/test_custom_model.py +14 -32
- careamics-0.0.4/tests/config/architectures/test_lvae_model.py +136 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/architectures/test_register_model.py +1 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/architectures/test_unet_model.py +6 -5
- careamics-0.0.4/tests/config/test_configuration_factory.py +402 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_data_model.py +22 -0
- careamics-0.0.2/tests/config/test_algorithm_model.py → careamics-0.0.4/tests/config/test_fcn_algorithm_model.py +31 -15
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_training_model.py +8 -0
- careamics-0.0.4/tests/config/test_vae_algorithm_model.py +67 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/conftest.py +102 -11
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/test_iterable_dataset.py +2 -2
- careamics-0.0.4/tests/dataset/tiling/test_lvae_tiled_patching.py +252 -0
- careamics-0.0.4/tests/lightning/test_LVAE_lightning_module.py +578 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/test_lightning_module.py +39 -34
- careamics-0.0.4/tests/likelihood_modules/test_likelihoods.py +99 -0
- careamics-0.0.4/tests/losses/test_lvae_losses.py +337 -0
- careamics-0.0.4/tests/models/lvae/test_multich_dataset.py +164 -0
- careamics-0.0.4/tests/models/lvae/test_multifile_dataset.py +86 -0
- careamics-0.0.4/tests/models/lvae/test_noise_model.py +143 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/models/test_model_factory.py +2 -13
- careamics-0.0.4/tests/prediction_utils/test_lvae_prediction.py +181 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/test_careamist.py +31 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/test_conftest.py +2 -2
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_compose.py +29 -4
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_normalize.py +22 -1
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_pixel_manipulation.py +1 -1
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_tta.py +2 -2
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_xy_flip.py +42 -5
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_xy_random_rotate90.py +41 -4
- careamics-0.0.4/tests/utils/test_metrics.py +72 -0
- careamics-0.0.4/tests/utils/test_serializers.py +65 -0
- careamics-0.0.2/examples/3D/example_flywing_3D.ipynb +0 -346
- careamics-0.0.2/examples/3D/n2v_flywing_3D.yml +0 -73
- careamics-0.0.2/examples/evaluate_LVAE.ipynb +0 -1356
- careamics-0.0.2/src/careamics/config/architectures/vae_model.py +0 -42
- careamics-0.0.2/src/careamics/config/configuration_factory.py +0 -575
- careamics-0.0.2/src/careamics/config/support/supported_algorithms.py +0 -20
- careamics-0.0.2/src/careamics/config/support/supported_architectures.py +0 -20
- careamics-0.0.2/src/careamics/lightning/lightning_module.py +0 -276
- careamics-0.0.2/src/careamics/losses/__init__.py +0 -5
- careamics-0.0.2/src/careamics/losses/loss_factory.py +0 -49
- careamics-0.0.2/src/careamics/lvae_training/data_utils.py +0 -618
- careamics-0.0.2/src/careamics/models/__init__.py +0 -7
- careamics-0.0.2/src/careamics/models/lvae/likelihoods.py +0 -312
- careamics-0.0.2/src/careamics/models/lvae/noise_models.py +0 -409
- careamics-0.0.2/src/careamics/transforms/compose.py +0 -107
- careamics-0.0.2/src/careamics/utils/metrics.py +0 -115
- careamics-0.0.2/tests/config/test_configuration_factory.py +0 -523
- careamics-0.0.2/tests/utils/test_metrics.py +0 -30
- {careamics-0.0.2 → careamics-0.0.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/.github/TEST_FAIL_TEMPLATE.md +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/.github/pull_request_template.md +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/.gitignore +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/LICENSE +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/README.md +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/architectures/register_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/architectures/unet_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/callback_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/inference_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/references/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/references/algorithm_descriptions.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/references/references.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_data.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_loggers.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/support/supported_struct_axis.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/tile_information.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/transformations/normalize_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/transformations/transform_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/transformations/xy_flip_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/transformations/xy_random_rotate90_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/validators/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/config/validators/validator_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/conftest.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/dataset_utils/iterate_over_files.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/in_memory_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/iterable_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/iterable_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/patching/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/patching/patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/patching/random_patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/patching/sequential_patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/tiling/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/tiling/tiled_patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/dataset/zarr_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/read/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/read/get_func.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/read/zarr.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/write/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/write/get_func.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/file_io/write/tiff.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/__init__.py +0 -0
- {careamics-0.0.2/src/careamics/models/lvae → careamics-0.0.4/src/careamics/lvae_training/dataset/utils}/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/lightning_module.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/metrics.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/lvae_training/train_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/bioimage/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/layers.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/models/unet.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/prediction_utils/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/prediction_utils/prediction_outputs.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/py.typed +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/struct_mask_parameters.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/transform.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/transforms/tta.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/__init__.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/autocorrelation.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/base_enum.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/context.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/logging.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/path_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/ram.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/receptive_field.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/src/careamics/utils/torch_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/architectures/test_architecture_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/support/test_supported_data.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/support/test_supported_optimizers.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_callback_models.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_configuration_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_inference_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_optimizers_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/test_tile_information.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/transformations/test_normalize_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/transformations/test_xy_flip_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/config/validators/test_validator_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/dataset_utils/test_list_files.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/patching/test_patching_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/patching/test_random_patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/patching/test_sequential_patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/test_in_memory_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/test_iterable_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/tiling/test_collate_tiles.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/dataset/tiling/test_tiled_patching.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/file_io/read/test_get_read_func.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/file_io/read/test_read_tiff.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/file_io/write/test_get_write_func.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/file_io/write/test_write_tiff.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/test_lightning_api.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/test_predict_data_module.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/lightning/test_train_data_module.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/model_io/test_bmz_io.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/models/test_unet.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/prediction_utils/test_prediction_outputs.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/prediction_utils/test_stitch_prediction.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_manipulate_n2v.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/transforms/test_supported_transforms.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/utils/test_autocorrelation.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/utils/test_base_enum.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/utils/test_context.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/utils/test_logging.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/utils/test_torch_utils.py +0 -0
- {careamics-0.0.2 → careamics-0.0.4}/tests/utils/test_wandb.py +0 -0
|
@@ -53,7 +53,7 @@ jobs:
|
|
|
53
53
|
python -m pip install .[dev] ${{ github.event_name == 'schedule' && '--pre' || '' }}
|
|
54
54
|
|
|
55
55
|
- name: 🧪 Run Tests
|
|
56
|
-
run: pytest --color=yes
|
|
56
|
+
run: pytest --color=yes -m "not lvae"
|
|
57
57
|
|
|
58
58
|
# If something goes wrong with --pre tests, we can open an issue in the repo
|
|
59
59
|
- name: 📝 Report --pre Failures
|
|
@@ -69,11 +69,6 @@ jobs:
|
|
|
69
69
|
filename: .github/TEST_FAIL_TEMPLATE.md
|
|
70
70
|
update_existing: true
|
|
71
71
|
|
|
72
|
-
- name: Coverage
|
|
73
|
-
uses: codecov/codecov-action@v3
|
|
74
|
-
with:
|
|
75
|
-
version: v0.7.3
|
|
76
|
-
|
|
77
72
|
deploy:
|
|
78
73
|
name: Release
|
|
79
74
|
needs: test
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: codecov
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
tags:
|
|
8
|
+
- "v*"
|
|
9
|
+
pull_request:
|
|
10
|
+
workflow_dispatch:
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
name: ${{ matrix.platform }} (${{ matrix.python-version }})
|
|
15
|
+
runs-on: ${{ matrix.platform }}
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
python-version: ["3.9"]
|
|
20
|
+
platform: [ubuntu-latest]
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- name: 🛑 Cancel Previous Runs
|
|
24
|
+
uses: styfle/cancel-workflow-action@0.11.0
|
|
25
|
+
with:
|
|
26
|
+
access_token: ${{ github.token }}
|
|
27
|
+
|
|
28
|
+
- uses: actions/checkout@v3
|
|
29
|
+
|
|
30
|
+
- name: 🐍 Set up Python ${{ matrix.python-version }}
|
|
31
|
+
uses: actions/setup-python@v4
|
|
32
|
+
with:
|
|
33
|
+
python-version: ${{ matrix.python-version }}
|
|
34
|
+
cache-dependency-path: "pyproject.toml"
|
|
35
|
+
cache: "pip"
|
|
36
|
+
|
|
37
|
+
- name: Install Dependencies
|
|
38
|
+
run: |
|
|
39
|
+
python -m pip install -U pip
|
|
40
|
+
# if running a cron job, we add the --pre flag to test against pre-releases
|
|
41
|
+
python -m pip install .[dev] ${{ github.event_name == 'schedule' && '--pre' || '' }}
|
|
42
|
+
|
|
43
|
+
- name: 🧪 Run Tests
|
|
44
|
+
run: pytest --color=yes --cov --cov-config=pyproject.toml --cov-report=xml --cov-report=term-missing
|
|
45
|
+
|
|
46
|
+
- name: Coverage
|
|
47
|
+
uses: codecov/codecov-action@v3
|
|
48
|
+
with:
|
|
49
|
+
version: v0.7.3
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: lvae
|
|
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: ${{ matrix.platform }} (${{ matrix.python-version }})
|
|
18
|
+
runs-on: ${{ matrix.platform }}
|
|
19
|
+
strategy:
|
|
20
|
+
fail-fast: false
|
|
21
|
+
matrix:
|
|
22
|
+
python-version: ["3.9"]
|
|
23
|
+
platform: [ubuntu-latest, windows-latest]
|
|
24
|
+
|
|
25
|
+
steps:
|
|
26
|
+
- name: 🛑 Cancel Previous Runs
|
|
27
|
+
uses: styfle/cancel-workflow-action@0.11.0
|
|
28
|
+
with:
|
|
29
|
+
access_token: ${{ github.token }}
|
|
30
|
+
|
|
31
|
+
- uses: actions/checkout@v3
|
|
32
|
+
|
|
33
|
+
- name: 🐍 Set up Python ${{ matrix.python-version }}
|
|
34
|
+
uses: actions/setup-python@v4
|
|
35
|
+
with:
|
|
36
|
+
python-version: ${{ matrix.python-version }}
|
|
37
|
+
cache-dependency-path: "pyproject.toml"
|
|
38
|
+
cache: "pip"
|
|
39
|
+
|
|
40
|
+
- name: Install Dependencies
|
|
41
|
+
run: |
|
|
42
|
+
python -m pip install -U pip
|
|
43
|
+
# if running a cron job, we add the --pre flag to test against pre-releases
|
|
44
|
+
python -m pip install .[dev] ${{ github.event_name == 'schedule' && '--pre' || '' }}
|
|
45
|
+
|
|
46
|
+
- name: 🧪 Run Tests
|
|
47
|
+
run: pytest --color=yes -m lvae
|
|
48
|
+
|
|
49
|
+
# If something goes wrong with --pre tests, we can open an issue in the repo
|
|
50
|
+
- name: 📝 Report --pre Failures
|
|
51
|
+
if: failure() && github.event_name == 'schedule'
|
|
52
|
+
uses: JasonEtco/create-an-issue@v2
|
|
53
|
+
env:
|
|
54
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
55
|
+
PLATFORM: ${{ matrix.platform }}
|
|
56
|
+
PYTHON: ${{ matrix.python-version }}
|
|
57
|
+
RUN_ID: ${{ github.run_id }}
|
|
58
|
+
TITLE: "[test-bot] pip install --pre is failing"
|
|
59
|
+
with:
|
|
60
|
+
filename: .github/TEST_FAIL_TEMPLATE.md
|
|
61
|
+
update_existing: true
|
|
62
|
+
|
|
@@ -9,12 +9,12 @@ ci:
|
|
|
9
9
|
|
|
10
10
|
repos:
|
|
11
11
|
- repo: https://github.com/abravalheri/validate-pyproject
|
|
12
|
-
rev: v0.
|
|
12
|
+
rev: v0.19
|
|
13
13
|
hooks:
|
|
14
14
|
- id: validate-pyproject
|
|
15
15
|
|
|
16
16
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
17
|
-
rev: v0.
|
|
17
|
+
rev: v0.6.3
|
|
18
18
|
hooks:
|
|
19
19
|
- id: ruff
|
|
20
20
|
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*"
|
|
@@ -26,11 +26,12 @@ repos:
|
|
|
26
26
|
- id: black
|
|
27
27
|
|
|
28
28
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
29
|
-
rev: v1.11.
|
|
29
|
+
rev: v1.11.2
|
|
30
30
|
hooks:
|
|
31
31
|
- id: mypy
|
|
32
32
|
files: "^src/"
|
|
33
|
-
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae
|
|
33
|
+
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^src/careamics/config/likelihood_model.py|^src/careamics/losses/loss_factory.py|^src/careamics/losses/lvae/losses.py"
|
|
34
|
+
args: ['--config-file', 'mypy.ini']
|
|
34
35
|
additional_dependencies:
|
|
35
36
|
- numpy
|
|
36
37
|
- types-PyYAML
|
|
@@ -38,10 +39,10 @@ repos:
|
|
|
38
39
|
|
|
39
40
|
# check docstrings
|
|
40
41
|
- repo: https://github.com/numpy/numpydoc
|
|
41
|
-
rev: v1.8.
|
|
42
|
+
rev: v1.8.0
|
|
42
43
|
hooks:
|
|
43
44
|
- id: numpydoc-validation
|
|
44
|
-
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*"
|
|
45
|
+
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^src/careamics/losses/lvae/.*"
|
|
45
46
|
|
|
46
47
|
# # jupyter linting and formatting
|
|
47
48
|
# - repo: https://github.com/nbQA-dev/nbQA
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: careamics
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.4
|
|
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
|
|
7
|
-
Author-email: Melisande Croft <melisande.croft@fht.org>, Joran Deschamps <joran.deschamps@fht.org>, Igor Zubarev <igor.zubarev@fht.org>
|
|
7
|
+
Author-email: CAREamics team <rse@fht.org>, Ashesh <ashesh.ashesh@fht.org>, Federico Carrara <federico.carrara@fht.org>, Melisande Croft <melisande.croft@fht.org>, Joran Deschamps <joran.deschamps@fht.org>, Vera Galinova <vera.galinova@fht.org>, Igor Zubarev <igor.zubarev@fht.org>
|
|
8
8
|
License: BSD-3-Clause
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
Classifier: Development Status :: 3 - Alpha
|
|
@@ -16,16 +16,17 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Typing :: Typed
|
|
18
18
|
Requires-Python: >=3.9
|
|
19
|
-
Requires-Dist: bioimageio-core>=0.6.
|
|
19
|
+
Requires-Dist: bioimageio-core>=0.6.9
|
|
20
20
|
Requires-Dist: numpy<2.0.0
|
|
21
21
|
Requires-Dist: psutil
|
|
22
|
-
Requires-Dist: pydantic
|
|
22
|
+
Requires-Dist: pydantic<2.9,>=2.5
|
|
23
23
|
Requires-Dist: pytorch-lightning>=2.2.0
|
|
24
24
|
Requires-Dist: pyyaml
|
|
25
25
|
Requires-Dist: scikit-image<=0.23.2
|
|
26
26
|
Requires-Dist: tifffile
|
|
27
27
|
Requires-Dist: torch>=2.0.0
|
|
28
28
|
Requires-Dist: torchvision
|
|
29
|
+
Requires-Dist: typer==0.12.3
|
|
29
30
|
Requires-Dist: zarr<3.0.0
|
|
30
31
|
Provides-Extra: dev
|
|
31
32
|
Requires-Dist: pre-commit; extra == 'dev'
|
careamics-0.0.4/mypy.ini
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
[mypy]
|
|
2
|
+
ignore_missing_imports = True
|
|
3
|
+
|
|
4
|
+
[mypy-careamics.lvae_training.*]
|
|
5
|
+
follow_imports = skip
|
|
6
|
+
|
|
7
|
+
[mypy-careamics.models.lvae.*]
|
|
8
|
+
follow_imports = skip
|
|
9
|
+
|
|
10
|
+
[mypy-careamics.losses.loss_factory]
|
|
11
|
+
follow_imports = skip
|
|
12
|
+
|
|
13
|
+
[mypy-careamics.losses.lvae.losses]
|
|
14
|
+
follow_imports = skip
|
|
15
|
+
|
|
16
|
+
[mypy-careamics.config.likelihood_model]
|
|
17
|
+
follow_imports = skip
|
|
@@ -23,8 +23,12 @@ readme = "README.md"
|
|
|
23
23
|
requires-python = ">=3.9"
|
|
24
24
|
license = { text = "BSD-3-Clause" }
|
|
25
25
|
authors = [
|
|
26
|
+
{ name = 'CAREamics team', email = 'rse@fht.org' },
|
|
27
|
+
{ name = 'Ashesh', email = 'ashesh.ashesh@fht.org' },
|
|
28
|
+
{ name = 'Federico Carrara', email = 'federico.carrara@fht.org' },
|
|
26
29
|
{ name = 'Melisande Croft', email = 'melisande.croft@fht.org' },
|
|
27
30
|
{ name = 'Joran Deschamps', email = 'joran.deschamps@fht.org' },
|
|
31
|
+
{ name = 'Vera Galinova', email = 'vera.galinova@fht.org' },
|
|
28
32
|
{ name = 'Igor Zubarev', email = 'igor.zubarev@fht.org' },
|
|
29
33
|
]
|
|
30
34
|
classifiers = [
|
|
@@ -41,12 +45,13 @@ dependencies = [
|
|
|
41
45
|
'numpy<2.0.0',
|
|
42
46
|
'torch>=2.0.0',
|
|
43
47
|
'torchvision',
|
|
44
|
-
'bioimageio.core>=0.6.
|
|
48
|
+
'bioimageio.core>=0.6.9',
|
|
45
49
|
'tifffile',
|
|
46
50
|
'psutil',
|
|
47
|
-
'pydantic>=2.5',
|
|
51
|
+
'pydantic>=2.5,<2.9',
|
|
48
52
|
'pytorch_lightning>=2.2.0',
|
|
49
53
|
'pyyaml',
|
|
54
|
+
'typer==0.12.3',
|
|
50
55
|
'scikit-image<=0.23.2',
|
|
51
56
|
'zarr<3.0.0',
|
|
52
57
|
]
|
|
@@ -71,6 +76,10 @@ tensorboard = ["tensorboard", "protobuf==3.20.3"]
|
|
|
71
76
|
homepage = "https://careamics.github.io/"
|
|
72
77
|
repository = "https://github.com/CAREamics/careamics"
|
|
73
78
|
|
|
79
|
+
# cli
|
|
80
|
+
[project.scripts]
|
|
81
|
+
careamics = "careamics.cli.main:run"
|
|
82
|
+
|
|
74
83
|
# https://beta.ruff.rs/docs
|
|
75
84
|
[tool.ruff]
|
|
76
85
|
line-length = 88
|
|
@@ -137,7 +146,10 @@ filterwarnings = [
|
|
|
137
146
|
]
|
|
138
147
|
addopts = "-p no:doctest"
|
|
139
148
|
|
|
140
|
-
|
|
149
|
+
markers = [
|
|
150
|
+
# "gpu: marks tests as requiring gpu",
|
|
151
|
+
"lvae: marks tests as testing lvae",
|
|
152
|
+
]
|
|
141
153
|
|
|
142
154
|
# https://coverage.readthedocs.io/en/6.4/config.html
|
|
143
155
|
[tool.coverage.report]
|
|
@@ -181,3 +193,4 @@ exclude = [ # don't report on objects that match any of these regex
|
|
|
181
193
|
"test_*",
|
|
182
194
|
"src/careamics/lvae_training/*",
|
|
183
195
|
]
|
|
196
|
+
|
|
@@ -13,10 +13,7 @@ from pytorch_lightning.callbacks import (
|
|
|
13
13
|
)
|
|
14
14
|
from pytorch_lightning.loggers import TensorBoardLogger, WandbLogger
|
|
15
15
|
|
|
16
|
-
from careamics.config import
|
|
17
|
-
Configuration,
|
|
18
|
-
load_configuration,
|
|
19
|
-
)
|
|
16
|
+
from careamics.config import Configuration, FCNAlgorithmConfig, load_configuration
|
|
20
17
|
from careamics.config.support import (
|
|
21
18
|
SupportedAlgorithm,
|
|
22
19
|
SupportedArchitecture,
|
|
@@ -25,7 +22,7 @@ from careamics.config.support import (
|
|
|
25
22
|
)
|
|
26
23
|
from careamics.dataset.dataset_utils import reshape_array
|
|
27
24
|
from careamics.lightning import (
|
|
28
|
-
|
|
25
|
+
FCNModule,
|
|
29
26
|
HyperParametersCallback,
|
|
30
27
|
PredictDataModule,
|
|
31
28
|
ProgressBarCallback,
|
|
@@ -51,8 +48,6 @@ class CAREamist:
|
|
|
51
48
|
work_dir : str, optional
|
|
52
49
|
Path to working directory in which to save checkpoints and logs,
|
|
53
50
|
by default None.
|
|
54
|
-
experiment_name : str, by default "CAREamics"
|
|
55
|
-
Experiment name used for checkpoints.
|
|
56
51
|
callbacks : list of Callback, optional
|
|
57
52
|
List of callbacks to use during training and prediction, by default None.
|
|
58
53
|
|
|
@@ -78,8 +73,7 @@ class CAREamist:
|
|
|
78
73
|
def __init__( # numpydoc ignore=GL08
|
|
79
74
|
self,
|
|
80
75
|
source: Union[Path, str],
|
|
81
|
-
work_dir: Optional[str] = None,
|
|
82
|
-
experiment_name: str = "CAREamics",
|
|
76
|
+
work_dir: Optional[Union[Path, str]] = None,
|
|
83
77
|
callbacks: Optional[list[Callback]] = None,
|
|
84
78
|
) -> None: ...
|
|
85
79
|
|
|
@@ -87,8 +81,7 @@ class CAREamist:
|
|
|
87
81
|
def __init__( # numpydoc ignore=GL08
|
|
88
82
|
self,
|
|
89
83
|
source: Configuration,
|
|
90
|
-
work_dir: Optional[str] = None,
|
|
91
|
-
experiment_name: str = "CAREamics",
|
|
84
|
+
work_dir: Optional[Union[Path, str]] = None,
|
|
92
85
|
callbacks: Optional[list[Callback]] = None,
|
|
93
86
|
) -> None: ...
|
|
94
87
|
|
|
@@ -96,7 +89,6 @@ class CAREamist:
|
|
|
96
89
|
self,
|
|
97
90
|
source: Union[Path, str, Configuration],
|
|
98
91
|
work_dir: Optional[Union[Path, str]] = None,
|
|
99
|
-
experiment_name: str = "CAREamics",
|
|
100
92
|
callbacks: Optional[list[Callback]] = None,
|
|
101
93
|
) -> None:
|
|
102
94
|
"""
|
|
@@ -109,18 +101,13 @@ class CAREamist:
|
|
|
109
101
|
|
|
110
102
|
If no working directory is provided, the current working directory is used.
|
|
111
103
|
|
|
112
|
-
If `source` is a checkpoint, then `experiment_name` is used to name the
|
|
113
|
-
checkpoint, and is recorded in the configuration.
|
|
114
|
-
|
|
115
104
|
Parameters
|
|
116
105
|
----------
|
|
117
106
|
source : pathlib.Path or str or CAREamics Configuration
|
|
118
107
|
Path to a configuration file or a trained model.
|
|
119
|
-
work_dir : str, optional
|
|
108
|
+
work_dir : str or pathlib.Path, optional
|
|
120
109
|
Path to working directory in which to save checkpoints and logs,
|
|
121
110
|
by default None.
|
|
122
|
-
experiment_name : str, optional
|
|
123
|
-
Experiment name used for checkpoints, by default "CAREamics".
|
|
124
111
|
callbacks : list of Callback, optional
|
|
125
112
|
List of callbacks to use during training and prediction, by default None.
|
|
126
113
|
|
|
@@ -148,9 +135,12 @@ class CAREamist:
|
|
|
148
135
|
self.cfg = source
|
|
149
136
|
|
|
150
137
|
# instantiate model
|
|
151
|
-
self.
|
|
152
|
-
|
|
153
|
-
|
|
138
|
+
if isinstance(self.cfg.algorithm_config, FCNAlgorithmConfig):
|
|
139
|
+
self.model = FCNModule(
|
|
140
|
+
algorithm_config=self.cfg.algorithm_config,
|
|
141
|
+
)
|
|
142
|
+
else:
|
|
143
|
+
raise NotImplementedError("Architecture not supported.")
|
|
154
144
|
|
|
155
145
|
# path to configuration file or model
|
|
156
146
|
else:
|
|
@@ -164,9 +154,12 @@ class CAREamist:
|
|
|
164
154
|
self.cfg = load_configuration(source)
|
|
165
155
|
|
|
166
156
|
# instantiate model
|
|
167
|
-
self.
|
|
168
|
-
|
|
169
|
-
|
|
157
|
+
if isinstance(self.cfg.algorithm_config, FCNAlgorithmConfig):
|
|
158
|
+
self.model = FCNModule(
|
|
159
|
+
algorithm_config=self.cfg.algorithm_config,
|
|
160
|
+
) # type: ignore
|
|
161
|
+
else:
|
|
162
|
+
raise NotImplementedError("Architecture not supported.")
|
|
170
163
|
|
|
171
164
|
# attempt loading a pre-trained model
|
|
172
165
|
else:
|
|
@@ -192,6 +185,13 @@ class CAREamist:
|
|
|
192
185
|
# instantiate trainer
|
|
193
186
|
self.trainer = Trainer(
|
|
194
187
|
max_epochs=self.cfg.training_config.num_epochs,
|
|
188
|
+
precision=self.cfg.training_config.precision,
|
|
189
|
+
max_steps=self.cfg.training_config.max_steps,
|
|
190
|
+
check_val_every_n_epoch=self.cfg.training_config.check_val_every_n_epoch,
|
|
191
|
+
enable_progress_bar=self.cfg.training_config.enable_progress_bar,
|
|
192
|
+
accumulate_grad_batches=self.cfg.training_config.accumulate_grad_batches,
|
|
193
|
+
gradient_clip_val=self.cfg.training_config.gradient_clip_val,
|
|
194
|
+
gradient_clip_algorithm=self.cfg.training_config.gradient_clip_algorithm,
|
|
195
195
|
callbacks=self.callbacks,
|
|
196
196
|
default_root_dir=self.work_dir,
|
|
197
197
|
logger=self.experiment_logger,
|
|
@@ -247,6 +247,12 @@ class CAREamist:
|
|
|
247
247
|
EarlyStopping(self.cfg.training_config.early_stopping_callback)
|
|
248
248
|
)
|
|
249
249
|
|
|
250
|
+
def stop_training(self) -> None:
|
|
251
|
+
"""Stop the training loop."""
|
|
252
|
+
# raise stop training flag
|
|
253
|
+
self.trainer.should_stop = True
|
|
254
|
+
self.trainer.limit_val_batches = 0 # skip validation
|
|
255
|
+
|
|
250
256
|
# TODO: is there are more elegant way than calling train again after _train_on_paths
|
|
251
257
|
def train(
|
|
252
258
|
self,
|
|
@@ -393,9 +399,14 @@ class CAREamist:
|
|
|
393
399
|
datamodule : TrainDataModule
|
|
394
400
|
Datamodule to train on.
|
|
395
401
|
"""
|
|
396
|
-
#
|
|
402
|
+
# register datamodule
|
|
397
403
|
self.train_datamodule = datamodule
|
|
398
404
|
|
|
405
|
+
# set defaults (in case `stop_training` was called before)
|
|
406
|
+
self.trainer.should_stop = False
|
|
407
|
+
self.trainer.limit_val_batches = 1.0 # 100%
|
|
408
|
+
|
|
409
|
+
# train
|
|
399
410
|
self.trainer.fit(self.model, datamodule=datamodule)
|
|
400
411
|
|
|
401
412
|
def _train_on_array(
|
|
@@ -511,7 +522,7 @@ class CAREamist:
|
|
|
511
522
|
tile_overlap: tuple[int, ...] = (48, 48),
|
|
512
523
|
axes: Optional[str] = None,
|
|
513
524
|
data_type: Optional[Literal["tiff", "custom"]] = None,
|
|
514
|
-
tta_transforms: bool =
|
|
525
|
+
tta_transforms: bool = False,
|
|
515
526
|
dataloader_params: Optional[dict] = None,
|
|
516
527
|
read_source_func: Optional[Callable] = None,
|
|
517
528
|
extension_filter: str = "",
|
|
@@ -527,7 +538,7 @@ class CAREamist:
|
|
|
527
538
|
tile_overlap: tuple[int, ...] = (48, 48),
|
|
528
539
|
axes: Optional[str] = None,
|
|
529
540
|
data_type: Optional[Literal["array"]] = None,
|
|
530
|
-
tta_transforms: bool =
|
|
541
|
+
tta_transforms: bool = False,
|
|
531
542
|
dataloader_params: Optional[dict] = None,
|
|
532
543
|
) -> Union[list[NDArray], NDArray]: ...
|
|
533
544
|
|
|
@@ -540,7 +551,7 @@ class CAREamist:
|
|
|
540
551
|
tile_overlap: Optional[tuple[int, ...]] = (48, 48),
|
|
541
552
|
axes: Optional[str] = None,
|
|
542
553
|
data_type: Optional[Literal["array", "tiff", "custom"]] = None,
|
|
543
|
-
tta_transforms: bool =
|
|
554
|
+
tta_transforms: bool = False,
|
|
544
555
|
dataloader_params: Optional[dict] = None,
|
|
545
556
|
read_source_func: Optional[Callable] = None,
|
|
546
557
|
extension_filter: str = "",
|