careamics 0.0.4.2__py3-none-any.whl → 0.0.5__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.

Files changed (43) hide show
  1. careamics/careamist.py +235 -25
  2. careamics/cli/conf.py +19 -30
  3. careamics/cli/main.py +111 -10
  4. careamics/cli/utils.py +29 -0
  5. careamics/config/__init__.py +2 -0
  6. careamics/config/architectures/lvae_model.py +104 -21
  7. careamics/config/configuration_factory.py +49 -45
  8. careamics/config/configuration_model.py +2 -2
  9. careamics/config/likelihood_model.py +7 -6
  10. careamics/config/loss_model.py +56 -0
  11. careamics/config/nm_model.py +24 -24
  12. careamics/config/vae_algorithm_model.py +14 -13
  13. careamics/dataset/dataset_utils/running_stats.py +22 -23
  14. careamics/lightning/lightning_module.py +58 -27
  15. careamics/lightning/train_data_module.py +15 -1
  16. careamics/losses/loss_factory.py +1 -85
  17. careamics/losses/lvae/losses.py +223 -164
  18. careamics/lvae_training/calibration.py +184 -0
  19. careamics/lvae_training/dataset/config.py +2 -2
  20. careamics/lvae_training/dataset/multich_dataset.py +11 -19
  21. careamics/lvae_training/dataset/multifile_dataset.py +3 -2
  22. careamics/lvae_training/dataset/types.py +15 -26
  23. careamics/lvae_training/dataset/utils/index_manager.py +4 -4
  24. careamics/lvae_training/eval_utils.py +125 -213
  25. careamics/model_io/bioimage/_readme_factory.py +25 -33
  26. careamics/model_io/bioimage/cover_factory.py +171 -0
  27. careamics/model_io/bioimage/model_description.py +39 -17
  28. careamics/model_io/bmz_io.py +36 -25
  29. careamics/models/layers.py +6 -4
  30. careamics/models/lvae/layers.py +348 -975
  31. careamics/models/lvae/likelihoods.py +10 -8
  32. careamics/models/lvae/lvae.py +214 -272
  33. careamics/models/lvae/noise_models.py +179 -112
  34. careamics/models/lvae/stochastic.py +393 -0
  35. careamics/models/lvae/utils.py +82 -73
  36. careamics/utils/lightning_utils.py +57 -0
  37. careamics/utils/serializers.py +2 -0
  38. careamics/utils/torch_utils.py +1 -1
  39. {careamics-0.0.4.2.dist-info → careamics-0.0.5.dist-info}/METADATA +12 -9
  40. {careamics-0.0.4.2.dist-info → careamics-0.0.5.dist-info}/RECORD +43 -37
  41. {careamics-0.0.4.2.dist-info → careamics-0.0.5.dist-info}/WHEEL +1 -1
  42. {careamics-0.0.4.2.dist-info → careamics-0.0.5.dist-info}/entry_points.txt +0 -0
  43. {careamics-0.0.4.2.dist-info → careamics-0.0.5.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 Literal, Union, TYPE_CHECKING, Any, Optional
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, None]
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
- noiseModel=config.noise_model,
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
- noiseModel: NoiseModel,
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 = 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