careamics 0.1.0rc4__tar.gz → 0.1.0rc6__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.1.0rc6/.github/pull_request_template.md +39 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.github/workflows/ci.yml +1 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.pre-commit-config.yaml +14 -14
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/PKG-INFO +17 -61
- careamics-0.1.0rc6/README.md +34 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/example_BSD68_lightning.ipynb +0 -8
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/pyproject.toml +5 -6
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/hyperparameters_callback.py +10 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/progress_bar_callback.py +37 -4
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/careamist.py +92 -55
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/__init__.py +0 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/algorithm_model.py +5 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/architecture_model.py +7 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/custom_model.py +8 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/register_model.py +3 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/unet_model.py +3 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/vae_model.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/callback_model.py +4 -15
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/configuration_example.py +4 -4
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/configuration_factory.py +113 -55
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/configuration_model.py +14 -16
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/data_model.py +63 -165
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/inference_model.py +9 -75
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/optimizer_models.py +4 -4
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/references/algorithm_descriptions.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/references/references.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/__init__.py +0 -2
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_activations.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_algorithms.py +3 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_architectures.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_data.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_loggers.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_losses.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_optimizers.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_pixel_manipulations.py +3 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_struct_axis.py +2 -0
- careamics-0.1.0rc6/src/careamics/config/support/supported_transforms.py +12 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/tile_information.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/training_model.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/__init__.py +3 -2
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/n2v_manipulate_model.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/normalize_model.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/transform_model.py +1 -0
- careamics-0.1.0rc6/src/careamics/config/transformations/xy_flip_model.py +43 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/xy_random_rotate90_model.py +13 -7
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/validators/validator_utils.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/conftest.py +13 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/__init__.py +0 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/dataset_utils.py +5 -4
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/file_utils.py +4 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/read_tiff.py +6 -2
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/read_utils.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/read_zarr.py +11 -7
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/in_memory_dataset.py +84 -76
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/iterable_dataset.py +166 -134
- careamics-0.1.0rc6/src/careamics/dataset/patching/__init__.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/patching.py +56 -14
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/random_patching.py +8 -2
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/sequential_patching.py +20 -14
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/tiled_patching.py +13 -7
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/validate_patch_dimension.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/zarr_dataset.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_datamodule.py +63 -41
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_module.py +9 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_prediction_datamodule.py +15 -20
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_prediction_loop.py +8 -6
- careamics-0.1.0rc6/src/careamics/losses/__init__.py +5 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/losses/loss_factory.py +2 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/losses/losses.py +11 -7
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/__init__.py +0 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/_readme_factory.py +2 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/bioimage_utils.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/model_description.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bmz_io.py +4 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/activation.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/layers.py +122 -25
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/model_factory.py +2 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/unet.py +114 -19
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/prediction/stitch_prediction.py +2 -5
- careamics-0.1.0rc6/src/careamics/transforms/__init__.py +20 -0
- careamics-0.1.0rc6/src/careamics/transforms/compose.py +124 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/n2v_manipulate.py +65 -34
- careamics-0.1.0rc6/src/careamics/transforms/normalize.py +172 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/pixel_manipulation.py +7 -7
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/struct_mask_parameters.py +3 -1
- careamics-0.1.0rc6/src/careamics/transforms/transform.py +24 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/tta.py +2 -2
- careamics-0.1.0rc6/src/careamics/transforms/xy_flip.py +123 -0
- careamics-0.1.0rc6/src/careamics/transforms/xy_random_rotate90.py +101 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/__init__.py +0 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/base_enum.py +28 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/context.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/logging.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/metrics.py +1 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/path_utils.py +2 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/ram.py +2 -0
- careamics-0.1.0rc6/src/careamics/utils/receptive_field.py +108 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/torch_utils.py +1 -0
- careamics-0.1.0rc6/tests/config/test_configuration_factory.py +595 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_configuration_model.py +1 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_data_model.py +12 -59
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_inference_model.py +0 -68
- careamics-0.1.0rc6/tests/config/transformations/test_n2v_manipulate_model.py +33 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/transformations/test_normalize_model.py +9 -0
- careamics-0.1.0rc6/tests/config/transformations/test_xy_flip_model.py +10 -0
- careamics-0.1.0rc6/tests/config/transformations/test_xy_random_rotate90_model.py +10 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/conftest.py +1 -1
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_sequential_patching.py +17 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/test_in_memory_dataset.py +3 -3
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/models/test_unet.py +40 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_careamist.py +180 -34
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_lightning_module.py +40 -2
- careamics-0.1.0rc6/tests/transforms/test_compose.py +131 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_manipulate_n2v.py +5 -9
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_normalize.py +3 -3
- careamics-0.1.0rc6/tests/transforms/test_xy_flip.py +137 -0
- careamics-0.1.0rc6/tests/transforms/test_xy_random_rotate90.py +96 -0
- careamics-0.1.0rc4/.github/PR_TEMPLATE/pull_request.md +0 -22
- careamics-0.1.0rc4/README.md +0 -78
- careamics-0.1.0rc4/src/careamics/config/noise_models.py +0 -162
- careamics-0.1.0rc4/src/careamics/config/support/supported_extraction_strategies.py +0 -24
- careamics-0.1.0rc4/src/careamics/config/support/supported_transforms.py +0 -23
- careamics-0.1.0rc4/src/careamics/config/transformations/nd_flip_model.py +0 -32
- careamics-0.1.0rc4/src/careamics/dataset/patching/__init__.py +0 -8
- careamics-0.1.0rc4/src/careamics/dataset/patching/patch_transform.py +0 -44
- careamics-0.1.0rc4/src/careamics/losses/__init__.py +0 -7
- careamics-0.1.0rc4/src/careamics/losses/noise_model_factory.py +0 -40
- careamics-0.1.0rc4/src/careamics/losses/noise_models.py +0 -524
- careamics-0.1.0rc4/src/careamics/transforms/__init__.py +0 -41
- careamics-0.1.0rc4/src/careamics/transforms/nd_flip.py +0 -93
- careamics-0.1.0rc4/src/careamics/transforms/normalize.py +0 -109
- careamics-0.1.0rc4/src/careamics/transforms/xy_random_rotate90.py +0 -95
- careamics-0.1.0rc4/src/careamics/utils/receptive_field.py +0 -102
- careamics-0.1.0rc4/tests/config/test_configuration_factory.py +0 -222
- careamics-0.1.0rc4/tests/config/transformations/test_n2v_manipulate_model.py +0 -26
- careamics-0.1.0rc4/tests/transforms/test_nd_flip.py +0 -129
- careamics-0.1.0rc4/tests/transforms/test_xy_random_rotate90.py +0 -117
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.gitignore +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/LICENSE +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2n/example_SEM_careamist.ipynb +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2n/n2n_2D_SEM.yml +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/example_BSD68_careamist.ipynb +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/example_SEM_lightning.ipynb +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/n2v_2D_BSD.yml +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/pn2v/pN2V_Convallaria.yml +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/3D/example_flywing_3D.ipynb +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/3D/n2v_flywing_3D.yml +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/references/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/validators/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/model_io_utils.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/prediction/__init__.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/py.typed +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/running_stats.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_architecture_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_custom_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_register_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_unet_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/support/test_supported_data.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/support/test_supported_optimizers.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_algorithm_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_full_config_example.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_optimizers_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_tile_information.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_training_model.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/validators/test_validator_utils.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/dataset_utils/test_list_files.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/dataset_utils/test_read_tiff.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_patching_utils.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_random_patching.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_tiled_patching.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/test_iterable_dataset.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/model_io/test_bmz_io.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/models/test_model_factory.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/prediction/test_stitch_prediction.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_conftest.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_lightning_datamodule.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_lightning_prediction_datamodule.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_pixel_manipulation.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_supported_transforms.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_base_enum.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_context.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_logging.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_metrics.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_torch_utils.py +0 -0
- {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_wandb.py +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
### Description
|
|
2
|
+
|
|
3
|
+
Please provide a brief description of the changes in this PR. Include any relevant context or background information.
|
|
4
|
+
|
|
5
|
+
- **What**: Clearly and concisely describe what changes you have made.
|
|
6
|
+
- **Why**: Explain the reasoning behind these changes. What problem are you solving? Why is this change necessary?
|
|
7
|
+
- **How**: Describe how you implemented these changes. Provide an overview of the approach and any important implementation details.
|
|
8
|
+
|
|
9
|
+
### Changes Made
|
|
10
|
+
|
|
11
|
+
- **Added**: List new features or files added.
|
|
12
|
+
- **Modified**: Describe existing features or files modified.
|
|
13
|
+
- **Removed**: Detail features or files that were removed.
|
|
14
|
+
|
|
15
|
+
### Related Issues
|
|
16
|
+
|
|
17
|
+
Link to any related issues or discussions. Use keywords like "Fixes", "Resolves", or "Closes" to link to issues automatically.
|
|
18
|
+
|
|
19
|
+
- Fixes #
|
|
20
|
+
- Resolves #
|
|
21
|
+
- Closes #
|
|
22
|
+
|
|
23
|
+
### Breaking changes
|
|
24
|
+
|
|
25
|
+
Describe any breaking change.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Additional Notes and Examples
|
|
29
|
+
|
|
30
|
+
Include any additional notes or context that reviewers should be aware of, including snippets of code illustrating your new feature.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
**Please ensure your PR meets the following requirements:**
|
|
35
|
+
|
|
36
|
+
- [ ] Code builds and passes tests locally, including doctests
|
|
37
|
+
- [ ] New tests have been added (for bug fixes/features)
|
|
38
|
+
- [ ] Pre-commit passes
|
|
39
|
+
- [ ] PR to the documentation exists (for bug fixes / features)
|
|
@@ -27,7 +27,7 @@ jobs:
|
|
|
27
27
|
strategy:
|
|
28
28
|
fail-fast: false
|
|
29
29
|
matrix:
|
|
30
|
-
python-version: ["3.8", "3.9", "3.10", "3.11"]
|
|
30
|
+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
|
31
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
32
|
platform: [ubuntu-latest, macos-13, windows-latest]
|
|
33
33
|
|
|
@@ -9,23 +9,23 @@ ci:
|
|
|
9
9
|
|
|
10
10
|
repos:
|
|
11
11
|
- repo: https://github.com/abravalheri/validate-pyproject
|
|
12
|
-
rev: v0.
|
|
12
|
+
rev: v0.18
|
|
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.4.7
|
|
18
18
|
hooks:
|
|
19
19
|
- id: ruff
|
|
20
20
|
args: [--fix, --target-version, py38]
|
|
21
21
|
|
|
22
22
|
- repo: https://github.com/psf/black
|
|
23
|
-
rev:
|
|
23
|
+
rev: 24.4.2
|
|
24
24
|
hooks:
|
|
25
25
|
- id: black
|
|
26
26
|
|
|
27
27
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
28
|
-
rev: v1.
|
|
28
|
+
rev: v1.10.0
|
|
29
29
|
hooks:
|
|
30
30
|
- id: mypy
|
|
31
31
|
files: "^src/"
|
|
@@ -36,21 +36,21 @@ repos:
|
|
|
36
36
|
|
|
37
37
|
# check docstrings
|
|
38
38
|
- repo: https://github.com/numpy/numpydoc
|
|
39
|
-
rev: v1.
|
|
39
|
+
rev: v1.7.0
|
|
40
40
|
hooks:
|
|
41
41
|
- id: numpydoc-validation
|
|
42
42
|
|
|
43
|
-
# jupyter linting and formatting
|
|
44
|
-
- repo: https://github.com/nbQA-dev/nbQA
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
# # jupyter linting and formatting
|
|
44
|
+
# - repo: https://github.com/nbQA-dev/nbQA
|
|
45
|
+
# rev: 1.8.5
|
|
46
|
+
# hooks:
|
|
47
|
+
# - id: nbqa-ruff
|
|
48
|
+
# args: [--fix]
|
|
49
|
+
# - id: nbqa-black
|
|
50
|
+
# #- id: nbqa-mypy
|
|
51
51
|
|
|
52
52
|
# strip out jupyter notebooks
|
|
53
53
|
- repo: https://github.com/kynan/nbstripout
|
|
54
|
-
rev: 0.
|
|
54
|
+
rev: 0.7.1
|
|
55
55
|
hooks:
|
|
56
56
|
- id: nbstripout
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: careamics
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0rc6
|
|
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
|
|
@@ -14,9 +14,9 @@ Classifier: Programming Language :: Python :: 3.8
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
18
|
Classifier: Typing :: Typed
|
|
18
19
|
Requires-Python: >=3.8
|
|
19
|
-
Requires-Dist: albumentations
|
|
20
20
|
Requires-Dist: bioimageio-core>=0.6.0
|
|
21
21
|
Requires-Dist: psutil
|
|
22
22
|
Requires-Dist: pydantic>=2.5
|
|
@@ -48,7 +48,7 @@ Description-Content-Type: text/markdown
|
|
|
48
48
|
</a>
|
|
49
49
|
</p>
|
|
50
50
|
|
|
51
|
-
# CAREamics
|
|
51
|
+
# CAREamics
|
|
52
52
|
|
|
53
53
|
[](https://github.com/CAREamics/careamics/blob/main/LICENSE)
|
|
54
54
|
[](https://pypi.org/project/careamics)
|
|
@@ -56,67 +56,23 @@ Description-Content-Type: text/markdown
|
|
|
56
56
|
[](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
|
|
57
57
|
[](https://codecov.io/gh/CAREamics/careamics)
|
|
58
58
|
|
|
59
|
-
## Installation
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
For more details on the options please follow the installation [guide](https://careamics.github.io/careamics/).
|
|
60
|
+
CAREamics is a PyTorch library aimed at simplifying the use of Noise2Void and its many
|
|
61
|
+
variants and cousins (CARE, Noise2Noise, N2V2, P(P)N2V, HDN, muSplit etc.).
|
|
65
62
|
|
|
66
|
-
##
|
|
63
|
+
## Why CAREamics?
|
|
67
64
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
1. Using the [yaml config](examples/n2v_2D_reference.yml) file
|
|
65
|
+
Noise2Void is a widely used denoising algorithm, and is readily available from the `n2v`
|
|
66
|
+
python package. However, n2v is based on TensorFlow and Keras and we found it
|
|
67
|
+
increasingly hard to maintain. In addition, more recent methods (PPN2V, DivNoising,
|
|
68
|
+
HDN) are all implemented in PyTorch, but are lacking the extra features that would make
|
|
69
|
+
them usable by the community.
|
|
74
70
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
71
|
+
The aim of CAREamics is to provide a PyTorch library reuniting all the latest methods
|
|
72
|
+
in one package, while providing a simple and consistent API. The library relies on
|
|
73
|
+
PyTorch Lightning as a back-end. In addition, we will provide extensive documentation and
|
|
74
|
+
tutorials on how to best apply these methods in a scientific context.
|
|
79
75
|
|
|
80
|
-
|
|
81
|
-
loss: type of loss function, e.g. n2v for Noise2Void
|
|
82
|
-
model: model architecture, e.g. UNet
|
|
83
|
-
is_3D: True if 3D data, False if 2D data
|
|
84
|
-
|
|
85
|
-
training:
|
|
86
|
-
num_epochs: Number of training epochs
|
|
87
|
-
patch_size: Size of the patches, List of 2 or 3 elements
|
|
88
|
-
batch_size: Batch size for training
|
|
89
|
-
|
|
90
|
-
extraction_strategy: Controls how the patches are extracted from the data
|
|
91
|
-
|
|
92
|
-
data:
|
|
93
|
-
data_format: File extension, e.g. tif
|
|
94
|
-
axes: Defines the shape of the input data
|
|
95
|
-
```
|
|
96
|
-
Full description of the configuration parameters is in the [documentation](https://careamics.github.io/careamics/).
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```python
|
|
100
|
-
engine = Engine(config_path="config.yml")
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
2. Using the path to the pretrained model
|
|
104
|
-
It's also possible to initialize the Engine using the model checkpoint, saved during the training or downloaded from the [BioImage Model Zoo](https://bioimage.io/#/).
|
|
105
|
-
Checkpoint must contain model_state_dict.
|
|
106
|
-
Read more abount saving and loading models in the [documentation](https://careamics.github.io/careamics/).
|
|
107
|
-
|
|
108
|
-
Once Engine is initialized, we can start training, providing the relative paths to train and validation data
|
|
109
|
-
|
|
110
|
-
```python
|
|
111
|
-
engine.train(train_path=train_path, val_path=val_path)
|
|
112
|
-
```
|
|
113
|
-
Training will run for the specified number of epochs and save the model checkpoint in the working directory.
|
|
114
|
-
|
|
115
|
-
Prediction could be done directly after the training or by loading the pretrained model checkpoint.
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
predictions = engine.predict(pred_path=predict_path)
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
For more examples please take a look at the [notebooks](examples).
|
|
76
|
+
## Installation and use
|
|
122
77
|
|
|
78
|
+
Check out the [documentation](https://careamics.github.io/) for installation instructions and guides!
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="https://careamics.github.io/">
|
|
3
|
+
<img src="https://raw.githubusercontent.com/CAREamics/.github/main/profile/images/banner_careamics.png">
|
|
4
|
+
</a>
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
# CAREamics
|
|
8
|
+
|
|
9
|
+
[](https://github.com/CAREamics/careamics/blob/main/LICENSE)
|
|
10
|
+
[](https://pypi.org/project/careamics)
|
|
11
|
+
[](https://python.org)
|
|
12
|
+
[](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
|
|
13
|
+
[](https://codecov.io/gh/CAREamics/careamics)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
CAREamics is a PyTorch library aimed at simplifying the use of Noise2Void and its many
|
|
17
|
+
variants and cousins (CARE, Noise2Noise, N2V2, P(P)N2V, HDN, muSplit etc.).
|
|
18
|
+
|
|
19
|
+
## Why CAREamics?
|
|
20
|
+
|
|
21
|
+
Noise2Void is a widely used denoising algorithm, and is readily available from the `n2v`
|
|
22
|
+
python package. However, n2v is based on TensorFlow and Keras and we found it
|
|
23
|
+
increasingly hard to maintain. In addition, more recent methods (PPN2V, DivNoising,
|
|
24
|
+
HDN) are all implemented in PyTorch, but are lacking the extra features that would make
|
|
25
|
+
them usable by the community.
|
|
26
|
+
|
|
27
|
+
The aim of CAREamics is to provide a PyTorch library reuniting all the latest methods
|
|
28
|
+
in one package, while providing a simple and consistent API. The library relies on
|
|
29
|
+
PyTorch Lightning as a back-end. In addition, we will provide extensive documentation and
|
|
30
|
+
tutorials on how to best apply these methods in a scientific context.
|
|
31
|
+
|
|
32
|
+
## Installation and use
|
|
33
|
+
|
|
34
|
+
Check out the [documentation](https://careamics.github.io/) for installation instructions and guides!
|
|
@@ -18,11 +18,7 @@
|
|
|
18
18
|
" CAREamicsPredictDataModule,\n",
|
|
19
19
|
" CAREamicsTrainDataModule,\n",
|
|
20
20
|
")\n",
|
|
21
|
-
<<<<<<< Updated upstream
|
|
22
21
|
"from careamics.lightning_prediction import CAREamicsPredictionLoop\n",
|
|
23
|
-
=======
|
|
24
|
-
"from careamics.lightning_prediction import CAREamicsFiring\n",
|
|
25
|
-
>>>>>>> Stashed changes
|
|
26
22
|
"from careamics.utils.metrics import psnr"
|
|
27
23
|
]
|
|
28
24
|
},
|
|
@@ -172,11 +168,7 @@
|
|
|
172
168
|
"train_data_module = CAREamicsTrainDataModule(\n",
|
|
173
169
|
" train_data=train_path,\n",
|
|
174
170
|
" val_data=val_path,\n",
|
|
175
|
-
<<<<<<< Updated upstream
|
|
176
171
|
" data_type=\"tiff\", # to use np.ndarray, set data_type to \"array\"\n",
|
|
177
|
-
=======
|
|
178
|
-
" data_type=\"tiff\",\n",
|
|
179
|
-
>>>>>>> Stashed changes
|
|
180
172
|
" patch_size=(64, 64),\n",
|
|
181
173
|
" axes=\"SYX\",\n",
|
|
182
174
|
" batch_size=128,\n",
|
|
@@ -33,12 +33,12 @@ classifiers = [
|
|
|
33
33
|
"Programming Language :: Python :: 3.9",
|
|
34
34
|
"Programming Language :: Python :: 3.10",
|
|
35
35
|
"Programming Language :: Python :: 3.11",
|
|
36
|
+
"Programming Language :: Python :: 3.12",
|
|
36
37
|
"License :: OSI Approved :: BSD License",
|
|
37
38
|
"Typing :: Typed",
|
|
38
39
|
]
|
|
39
40
|
dependencies = [
|
|
40
41
|
'torch>=2.0.0',
|
|
41
|
-
'albumentations',
|
|
42
42
|
'bioimageio.core>=0.6.0',
|
|
43
43
|
'tifffile',
|
|
44
44
|
'psutil',
|
|
@@ -74,7 +74,7 @@ repository = "https://github.com/CAREamics/careamics"
|
|
|
74
74
|
line-length = 88
|
|
75
75
|
target-version = "py38"
|
|
76
76
|
src = ["src"]
|
|
77
|
-
select = [
|
|
77
|
+
lint.select = [
|
|
78
78
|
"E", # style errors
|
|
79
79
|
"W", # style warnings
|
|
80
80
|
"F", # flakes
|
|
@@ -87,7 +87,7 @@ select = [
|
|
|
87
87
|
"A001", # flake8-builtins
|
|
88
88
|
"RUF", # ruff-specific rules
|
|
89
89
|
]
|
|
90
|
-
ignore = [
|
|
90
|
+
lint.ignore = [
|
|
91
91
|
"D100", # Missing docstring in public module
|
|
92
92
|
"D107", # Missing docstring in __init__
|
|
93
93
|
"D203", # 1 blank line required before class docstring
|
|
@@ -104,13 +104,12 @@ ignore = [
|
|
|
104
104
|
"UP006", # Replace typing.List by list, mandatory for py3.8
|
|
105
105
|
"UP007", # Replace Union by |, mandatory for py3.9
|
|
106
106
|
]
|
|
107
|
-
ignore-init-module-imports = true
|
|
108
107
|
show-fixes = true
|
|
109
108
|
|
|
110
|
-
[tool.ruff.pydocstyle]
|
|
109
|
+
[tool.ruff.lint.pydocstyle]
|
|
111
110
|
convention = "numpy"
|
|
112
111
|
|
|
113
|
-
[tool.ruff.per-file-ignores]
|
|
112
|
+
[tool.ruff.lint.per-file-ignores]
|
|
114
113
|
"tests/*.py" = ["D", "S"]
|
|
115
114
|
"setup.py" = ["D"]
|
|
116
115
|
|
{careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/hyperparameters_callback.py
RENAMED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"""Callback saving CAREamics configuration as hyperparameters in the model."""
|
|
2
|
+
|
|
1
3
|
from pytorch_lightning import LightningModule, Trainer
|
|
2
4
|
from pytorch_lightning.callbacks import Callback
|
|
3
5
|
|
|
@@ -11,13 +13,18 @@ class HyperParametersCallback(Callback):
|
|
|
11
13
|
This allows saving the configuration as dictionnary in the checkpoints, and
|
|
12
14
|
loading it subsequently in a CAREamist instance.
|
|
13
15
|
|
|
16
|
+
Parameters
|
|
17
|
+
----------
|
|
18
|
+
config : Configuration
|
|
19
|
+
CAREamics configuration to be saved as hyperparameter in the model.
|
|
20
|
+
|
|
14
21
|
Attributes
|
|
15
22
|
----------
|
|
16
23
|
config : Configuration
|
|
17
24
|
CAREamics configuration to be saved as hyperparameter in the model.
|
|
18
25
|
"""
|
|
19
26
|
|
|
20
|
-
def __init__(self, config: Configuration):
|
|
27
|
+
def __init__(self, config: Configuration) -> None:
|
|
21
28
|
"""
|
|
22
29
|
Constructor.
|
|
23
30
|
|
|
@@ -28,14 +35,14 @@ class HyperParametersCallback(Callback):
|
|
|
28
35
|
"""
|
|
29
36
|
self.config = config
|
|
30
37
|
|
|
31
|
-
def on_train_start(self, trainer: Trainer, pl_module: LightningModule):
|
|
38
|
+
def on_train_start(self, trainer: Trainer, pl_module: LightningModule) -> None:
|
|
32
39
|
"""
|
|
33
40
|
Update the hyperparameters of the model with the configuration on train start.
|
|
34
41
|
|
|
35
42
|
Parameters
|
|
36
43
|
----------
|
|
37
44
|
trainer : Trainer
|
|
38
|
-
PyTorch Lightning trainer.
|
|
45
|
+
PyTorch Lightning trainer, unused.
|
|
39
46
|
pl_module : LightningModule
|
|
40
47
|
PyTorch Lightning module.
|
|
41
48
|
"""
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"""Progressbar callback."""
|
|
2
|
+
|
|
1
3
|
import sys
|
|
2
4
|
from typing import Dict, Union
|
|
3
5
|
|
|
@@ -10,7 +12,13 @@ class ProgressBarCallback(TQDMProgressBar):
|
|
|
10
12
|
"""Progress bar for training and validation steps."""
|
|
11
13
|
|
|
12
14
|
def init_train_tqdm(self) -> tqdm:
|
|
13
|
-
"""Override this to customize the tqdm bar for training.
|
|
15
|
+
"""Override this to customize the tqdm bar for training.
|
|
16
|
+
|
|
17
|
+
Returns
|
|
18
|
+
-------
|
|
19
|
+
tqdm
|
|
20
|
+
A tqdm bar.
|
|
21
|
+
"""
|
|
14
22
|
bar = tqdm(
|
|
15
23
|
desc="Training",
|
|
16
24
|
position=(2 * self.process_position),
|
|
@@ -23,7 +31,13 @@ class ProgressBarCallback(TQDMProgressBar):
|
|
|
23
31
|
return bar
|
|
24
32
|
|
|
25
33
|
def init_validation_tqdm(self) -> tqdm:
|
|
26
|
-
"""Override this to customize the tqdm bar for validation.
|
|
34
|
+
"""Override this to customize the tqdm bar for validation.
|
|
35
|
+
|
|
36
|
+
Returns
|
|
37
|
+
-------
|
|
38
|
+
tqdm
|
|
39
|
+
A tqdm bar.
|
|
40
|
+
"""
|
|
27
41
|
# The main progress bar doesn't exist in `trainer.validate()`
|
|
28
42
|
has_main_bar = self.train_progress_bar is not None
|
|
29
43
|
bar = tqdm(
|
|
@@ -37,7 +51,13 @@ class ProgressBarCallback(TQDMProgressBar):
|
|
|
37
51
|
return bar
|
|
38
52
|
|
|
39
53
|
def init_test_tqdm(self) -> tqdm:
|
|
40
|
-
"""Override this to customize the tqdm bar for testing.
|
|
54
|
+
"""Override this to customize the tqdm bar for testing.
|
|
55
|
+
|
|
56
|
+
Returns
|
|
57
|
+
-------
|
|
58
|
+
tqdm
|
|
59
|
+
A tqdm bar.
|
|
60
|
+
"""
|
|
41
61
|
bar = tqdm(
|
|
42
62
|
desc="Testing",
|
|
43
63
|
position=(2 * self.process_position),
|
|
@@ -52,6 +72,19 @@ class ProgressBarCallback(TQDMProgressBar):
|
|
|
52
72
|
def get_metrics(
|
|
53
73
|
self, trainer: Trainer, pl_module: LightningModule
|
|
54
74
|
) -> Dict[str, Union[int, str, float, Dict[str, float]]]:
|
|
55
|
-
"""Override this to customize the metrics displayed in the progress bar.
|
|
75
|
+
"""Override this to customize the metrics displayed in the progress bar.
|
|
76
|
+
|
|
77
|
+
Parameters
|
|
78
|
+
----------
|
|
79
|
+
trainer : Trainer
|
|
80
|
+
The trainer object.
|
|
81
|
+
pl_module : LightningModule
|
|
82
|
+
The LightningModule object, unused.
|
|
83
|
+
|
|
84
|
+
Returns
|
|
85
|
+
-------
|
|
86
|
+
dict
|
|
87
|
+
A dictionary with the metrics to display in the progress bar.
|
|
88
|
+
"""
|
|
56
89
|
pbar_metrics = trainer.progress_bar_metrics
|
|
57
90
|
return {**pbar_metrics}
|