careamics 0.0.4.2__py3-none-any.whl → 0.0.6__py3-none-any.whl
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/__init__.py +17 -2
- careamics/careamist.py +239 -28
- careamics/cli/conf.py +19 -31
- careamics/cli/main.py +112 -12
- careamics/cli/utils.py +29 -0
- careamics/config/__init__.py +48 -24
- careamics/config/algorithms/__init__.py +15 -0
- careamics/config/algorithms/care_algorithm_model.py +50 -0
- careamics/config/algorithms/n2n_algorithm_model.py +42 -0
- careamics/config/algorithms/n2v_algorithm_model.py +35 -0
- careamics/config/algorithms/unet_algorithm_model.py +88 -0
- careamics/config/{vae_algorithm_model.py → algorithms/vae_algorithm_model.py} +26 -23
- careamics/config/architectures/__init__.py +1 -11
- careamics/config/architectures/architecture_model.py +3 -3
- careamics/config/architectures/lvae_model.py +109 -21
- careamics/config/architectures/unet_model.py +1 -0
- careamics/config/care_configuration.py +100 -0
- careamics/config/configuration.py +354 -0
- careamics/config/{configuration_factory.py → configuration_factories.py} +152 -81
- careamics/config/configuration_io.py +85 -0
- careamics/config/data/__init__.py +10 -0
- careamics/config/{data_model.py → data/data_model.py} +58 -198
- careamics/config/data/n2v_data_model.py +193 -0
- careamics/config/likelihood_model.py +8 -8
- careamics/config/loss_model.py +56 -0
- careamics/config/n2n_configuration.py +101 -0
- careamics/config/n2v_configuration.py +266 -0
- careamics/config/nm_model.py +24 -25
- careamics/config/support/__init__.py +7 -7
- careamics/config/support/supported_algorithms.py +0 -3
- careamics/config/support/supported_architectures.py +0 -4
- careamics/config/transformations/__init__.py +10 -4
- careamics/config/transformations/transform_model.py +3 -3
- careamics/config/transformations/transform_unions.py +42 -0
- careamics/config/validators/validator_utils.py +3 -3
- careamics/dataset/__init__.py +2 -2
- careamics/dataset/dataset_utils/__init__.py +3 -3
- careamics/dataset/dataset_utils/dataset_utils.py +4 -6
- careamics/dataset/dataset_utils/file_utils.py +9 -9
- careamics/dataset/dataset_utils/iterate_over_files.py +4 -3
- careamics/dataset/dataset_utils/running_stats.py +22 -23
- careamics/dataset/in_memory_dataset.py +11 -12
- careamics/dataset/iterable_dataset.py +4 -4
- careamics/dataset/iterable_pred_dataset.py +2 -1
- careamics/dataset/iterable_tiled_pred_dataset.py +2 -1
- careamics/dataset/patching/random_patching.py +11 -10
- careamics/dataset/patching/sequential_patching.py +26 -26
- careamics/dataset/patching/validate_patch_dimension.py +3 -3
- careamics/dataset/tiling/__init__.py +2 -2
- careamics/dataset/tiling/collate_tiles.py +3 -3
- careamics/dataset/tiling/lvae_tiled_patching.py +2 -1
- careamics/dataset/tiling/tiled_patching.py +11 -10
- careamics/file_io/__init__.py +5 -5
- careamics/file_io/read/__init__.py +1 -1
- careamics/file_io/read/get_func.py +2 -2
- careamics/file_io/write/__init__.py +2 -2
- careamics/lightning/__init__.py +5 -5
- careamics/lightning/callbacks/__init__.py +1 -1
- careamics/lightning/callbacks/prediction_writer_callback/__init__.py +3 -3
- careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +2 -1
- careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +2 -1
- careamics/lightning/callbacks/progress_bar_callback.py +2 -2
- careamics/lightning/lightning_module.py +69 -34
- careamics/lightning/train_data_module.py +41 -27
- careamics/losses/__init__.py +3 -3
- careamics/losses/loss_factory.py +1 -85
- careamics/losses/lvae/losses.py +223 -164
- careamics/lvae_training/calibration.py +184 -0
- careamics/lvae_training/dataset/config.py +2 -2
- careamics/lvae_training/dataset/multich_dataset.py +11 -19
- careamics/lvae_training/dataset/multifile_dataset.py +3 -2
- careamics/lvae_training/dataset/types.py +15 -26
- careamics/lvae_training/dataset/utils/index_manager.py +4 -4
- careamics/lvae_training/eval_utils.py +125 -213
- careamics/model_io/__init__.py +1 -1
- careamics/model_io/bioimage/__init__.py +1 -1
- careamics/model_io/bioimage/_readme_factory.py +26 -34
- careamics/model_io/bioimage/cover_factory.py +171 -0
- careamics/model_io/bioimage/model_description.py +56 -34
- careamics/model_io/bmz_io.py +42 -42
- careamics/model_io/model_io_utils.py +9 -9
- careamics/models/layers.py +22 -20
- careamics/models/lvae/layers.py +348 -975
- careamics/models/lvae/likelihoods.py +10 -8
- careamics/models/lvae/lvae.py +214 -275
- careamics/models/lvae/noise_models.py +179 -112
- careamics/models/lvae/stochastic.py +393 -0
- careamics/models/lvae/utils.py +82 -73
- careamics/models/model_factory.py +2 -15
- careamics/models/unet.py +8 -8
- careamics/prediction_utils/__init__.py +1 -1
- careamics/prediction_utils/prediction_outputs.py +15 -15
- careamics/prediction_utils/stitch_prediction.py +6 -6
- careamics/transforms/__init__.py +5 -5
- careamics/transforms/compose.py +13 -13
- careamics/transforms/n2v_manipulate.py +3 -3
- careamics/transforms/pixel_manipulation.py +9 -9
- careamics/transforms/xy_random_rotate90.py +4 -4
- careamics/utils/__init__.py +5 -5
- careamics/utils/context.py +2 -1
- careamics/utils/lightning_utils.py +57 -0
- careamics/utils/logging.py +11 -10
- careamics/utils/serializers.py +2 -0
- careamics/utils/torch_utils.py +8 -8
- {careamics-0.0.4.2.dist-info → careamics-0.0.6.dist-info}/METADATA +16 -13
- careamics-0.0.6.dist-info/RECORD +176 -0
- {careamics-0.0.4.2.dist-info → careamics-0.0.6.dist-info}/WHEEL +1 -1
- careamics/config/architectures/custom_model.py +0 -162
- careamics/config/architectures/register_model.py +0 -103
- careamics/config/configuration_model.py +0 -603
- careamics/config/fcn_algorithm_model.py +0 -152
- careamics/config/references/__init__.py +0 -45
- careamics/config/references/algorithm_descriptions.py +0 -132
- careamics/config/references/references.py +0 -39
- careamics/config/transformations/transform_union.py +0 -20
- careamics-0.0.4.2.dist-info/RECORD +0 -165
- {careamics-0.0.4.2.dist-info → careamics-0.0.6.dist-info}/entry_points.txt +0 -0
- {careamics-0.0.4.2.dist-info → careamics-0.0.6.dist-info}/licenses/LICENSE +0 -0
|
@@ -5,7 +5,7 @@ Script containing modules for defining different likelihood functions (as nn.Mod
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
import math
|
|
8
|
-
from typing import
|
|
8
|
+
from typing import TYPE_CHECKING, Any, Literal, Optional, Union
|
|
9
9
|
|
|
10
10
|
import numpy as np
|
|
11
11
|
import torch
|
|
@@ -26,7 +26,8 @@ if TYPE_CHECKING:
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
def likelihood_factory(
|
|
29
|
-
config: Union[GaussianLikelihoodConfig, NMLikelihoodConfig,
|
|
29
|
+
config: Optional[Union[GaussianLikelihoodConfig, NMLikelihoodConfig]],
|
|
30
|
+
noise_model: Optional[NoiseModel] = None,
|
|
30
31
|
):
|
|
31
32
|
"""
|
|
32
33
|
Factory function for creating likelihood modules.
|
|
@@ -35,6 +36,8 @@ def likelihood_factory(
|
|
|
35
36
|
----------
|
|
36
37
|
config: Union[GaussianLikelihoodConfig, NMLikelihoodConfig]
|
|
37
38
|
The configuration object for the likelihood module.
|
|
39
|
+
noise_model: Optional[NoiseModel]
|
|
40
|
+
The noise model instance used to define the `NoiseModelLikelihood`.
|
|
38
41
|
|
|
39
42
|
Returns
|
|
40
43
|
-------
|
|
@@ -53,7 +56,7 @@ def likelihood_factory(
|
|
|
53
56
|
return NoiseModelLikelihood(
|
|
54
57
|
data_mean=config.data_mean,
|
|
55
58
|
data_std=config.data_std,
|
|
56
|
-
|
|
59
|
+
noise_model=noise_model,
|
|
57
60
|
)
|
|
58
61
|
else:
|
|
59
62
|
raise ValueError(f"Invalid likelihood model type: {config.model_type}")
|
|
@@ -99,8 +102,8 @@ class LikelihoodModule(nn.Module):
|
|
|
99
102
|
self, input_: torch.Tensor, x: Union[torch.Tensor, None]
|
|
100
103
|
) -> tuple[torch.Tensor, dict[str, torch.Tensor]]:
|
|
101
104
|
"""
|
|
102
|
-
Parameters
|
|
103
|
-
|
|
105
|
+
Parameters
|
|
106
|
+
----------
|
|
104
107
|
input_: torch.Tensor
|
|
105
108
|
The output of the top-down pass (e.g., reconstructed image in HDN,
|
|
106
109
|
or the unmixed images in 'Split' models).
|
|
@@ -181,7 +184,6 @@ class GaussianLikelihood(LikelihoodModule):
|
|
|
181
184
|
log-variance. If the attribute `predict_logvar` is `None` then the second
|
|
182
185
|
element will be `None`.
|
|
183
186
|
"""
|
|
184
|
-
|
|
185
187
|
# if LadderVAE.predict_logvar is None, dim 1 of `x`` has no. of target channels
|
|
186
188
|
if self.predict_logvar is None:
|
|
187
189
|
return x, None
|
|
@@ -290,7 +292,7 @@ class NoiseModelLikelihood(LikelihoodModule):
|
|
|
290
292
|
self,
|
|
291
293
|
data_mean: Union[np.ndarray, torch.Tensor],
|
|
292
294
|
data_std: Union[np.ndarray, torch.Tensor],
|
|
293
|
-
|
|
295
|
+
noise_model: NoiseModel,
|
|
294
296
|
):
|
|
295
297
|
"""Constructor.
|
|
296
298
|
|
|
@@ -307,7 +309,7 @@ class NoiseModelLikelihood(LikelihoodModule):
|
|
|
307
309
|
super().__init__()
|
|
308
310
|
self.data_mean = torch.Tensor(data_mean)
|
|
309
311
|
self.data_std = torch.Tensor(data_std)
|
|
310
|
-
self.noiseModel =
|
|
312
|
+
self.noiseModel = noise_model
|
|
311
313
|
|
|
312
314
|
def _set_params_to_same_device_as(
|
|
313
315
|
self, correct_device_tensor: torch.Tensor
|