careamics 0.1.0rc2__py3-none-any.whl → 0.1.0rc4__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 (134) hide show
  1. careamics/__init__.py +16 -4
  2. careamics/callbacks/__init__.py +6 -0
  3. careamics/callbacks/hyperparameters_callback.py +42 -0
  4. careamics/callbacks/progress_bar_callback.py +57 -0
  5. careamics/careamist.py +761 -0
  6. careamics/config/__init__.py +31 -3
  7. careamics/config/algorithm_model.py +167 -0
  8. careamics/config/architectures/__init__.py +17 -0
  9. careamics/config/architectures/architecture_model.py +29 -0
  10. careamics/config/architectures/custom_model.py +150 -0
  11. careamics/config/architectures/register_model.py +101 -0
  12. careamics/config/architectures/unet_model.py +96 -0
  13. careamics/config/architectures/vae_model.py +39 -0
  14. careamics/config/callback_model.py +92 -0
  15. careamics/config/configuration_example.py +89 -0
  16. careamics/config/configuration_factory.py +597 -0
  17. careamics/config/configuration_model.py +597 -0
  18. careamics/config/data_model.py +555 -0
  19. careamics/config/inference_model.py +283 -0
  20. careamics/config/noise_models.py +162 -0
  21. careamics/config/optimizer_models.py +181 -0
  22. careamics/config/references/__init__.py +45 -0
  23. careamics/config/references/algorithm_descriptions.py +131 -0
  24. careamics/config/references/references.py +38 -0
  25. careamics/config/support/__init__.py +33 -0
  26. careamics/config/support/supported_activations.py +24 -0
  27. careamics/config/support/supported_algorithms.py +18 -0
  28. careamics/config/support/supported_architectures.py +18 -0
  29. careamics/config/support/supported_data.py +82 -0
  30. careamics/{dataset/extraction_strategy.py → config/support/supported_extraction_strategies.py} +5 -2
  31. careamics/config/support/supported_loggers.py +8 -0
  32. careamics/config/support/supported_losses.py +25 -0
  33. careamics/config/support/supported_optimizers.py +55 -0
  34. careamics/config/support/supported_pixel_manipulations.py +15 -0
  35. careamics/config/support/supported_struct_axis.py +19 -0
  36. careamics/config/support/supported_transforms.py +23 -0
  37. careamics/config/tile_information.py +104 -0
  38. careamics/config/training_model.py +65 -0
  39. careamics/config/transformations/__init__.py +14 -0
  40. careamics/config/transformations/n2v_manipulate_model.py +63 -0
  41. careamics/config/transformations/nd_flip_model.py +32 -0
  42. careamics/config/transformations/normalize_model.py +31 -0
  43. careamics/config/transformations/transform_model.py +44 -0
  44. careamics/config/transformations/xy_random_rotate90_model.py +29 -0
  45. careamics/config/validators/__init__.py +5 -0
  46. careamics/config/validators/validator_utils.py +100 -0
  47. careamics/conftest.py +26 -0
  48. careamics/dataset/__init__.py +5 -0
  49. careamics/dataset/dataset_utils/__init__.py +19 -0
  50. careamics/dataset/dataset_utils/dataset_utils.py +100 -0
  51. careamics/dataset/dataset_utils/file_utils.py +140 -0
  52. careamics/dataset/dataset_utils/read_tiff.py +61 -0
  53. careamics/dataset/dataset_utils/read_utils.py +25 -0
  54. careamics/dataset/dataset_utils/read_zarr.py +56 -0
  55. careamics/dataset/in_memory_dataset.py +323 -134
  56. careamics/dataset/iterable_dataset.py +416 -0
  57. careamics/dataset/patching/__init__.py +8 -0
  58. careamics/dataset/patching/patch_transform.py +44 -0
  59. careamics/dataset/patching/patching.py +212 -0
  60. careamics/dataset/patching/random_patching.py +190 -0
  61. careamics/dataset/patching/sequential_patching.py +206 -0
  62. careamics/dataset/patching/tiled_patching.py +158 -0
  63. careamics/dataset/patching/validate_patch_dimension.py +60 -0
  64. careamics/dataset/zarr_dataset.py +149 -0
  65. careamics/lightning_datamodule.py +743 -0
  66. careamics/lightning_module.py +292 -0
  67. careamics/lightning_prediction_datamodule.py +396 -0
  68. careamics/lightning_prediction_loop.py +116 -0
  69. careamics/losses/__init__.py +4 -1
  70. careamics/losses/loss_factory.py +24 -14
  71. careamics/losses/losses.py +65 -5
  72. careamics/losses/noise_model_factory.py +40 -0
  73. careamics/losses/noise_models.py +524 -0
  74. careamics/model_io/__init__.py +8 -0
  75. careamics/model_io/bioimage/__init__.py +11 -0
  76. careamics/model_io/bioimage/_readme_factory.py +120 -0
  77. careamics/model_io/bioimage/bioimage_utils.py +48 -0
  78. careamics/model_io/bioimage/model_description.py +318 -0
  79. careamics/model_io/bmz_io.py +231 -0
  80. careamics/model_io/model_io_utils.py +80 -0
  81. careamics/models/__init__.py +4 -1
  82. careamics/models/activation.py +35 -0
  83. careamics/models/layers.py +244 -0
  84. careamics/models/model_factory.py +21 -221
  85. careamics/models/unet.py +46 -20
  86. careamics/prediction/__init__.py +1 -3
  87. careamics/prediction/stitch_prediction.py +73 -0
  88. careamics/transforms/__init__.py +41 -0
  89. careamics/transforms/n2v_manipulate.py +113 -0
  90. careamics/transforms/nd_flip.py +93 -0
  91. careamics/transforms/normalize.py +109 -0
  92. careamics/transforms/pixel_manipulation.py +383 -0
  93. careamics/transforms/struct_mask_parameters.py +18 -0
  94. careamics/transforms/tta.py +74 -0
  95. careamics/transforms/xy_random_rotate90.py +95 -0
  96. careamics/utils/__init__.py +10 -12
  97. careamics/utils/base_enum.py +32 -0
  98. careamics/utils/context.py +22 -2
  99. careamics/utils/metrics.py +0 -46
  100. careamics/utils/path_utils.py +24 -0
  101. careamics/utils/ram.py +13 -0
  102. careamics/utils/receptive_field.py +102 -0
  103. careamics/utils/running_stats.py +43 -0
  104. careamics/utils/torch_utils.py +112 -75
  105. careamics-0.1.0rc4.dist-info/METADATA +122 -0
  106. careamics-0.1.0rc4.dist-info/RECORD +110 -0
  107. {careamics-0.1.0rc2.dist-info → careamics-0.1.0rc4.dist-info}/WHEEL +1 -1
  108. careamics/bioimage/__init__.py +0 -15
  109. careamics/bioimage/docs/Noise2Void.md +0 -5
  110. careamics/bioimage/docs/__init__.py +0 -1
  111. careamics/bioimage/io.py +0 -182
  112. careamics/bioimage/rdf.py +0 -105
  113. careamics/config/algorithm.py +0 -231
  114. careamics/config/config.py +0 -297
  115. careamics/config/config_filter.py +0 -44
  116. careamics/config/data.py +0 -194
  117. careamics/config/torch_optim.py +0 -118
  118. careamics/config/training.py +0 -534
  119. careamics/dataset/dataset_utils.py +0 -111
  120. careamics/dataset/patching.py +0 -492
  121. careamics/dataset/prepare_dataset.py +0 -175
  122. careamics/dataset/tiff_dataset.py +0 -212
  123. careamics/engine.py +0 -1014
  124. careamics/manipulation/__init__.py +0 -4
  125. careamics/manipulation/pixel_manipulation.py +0 -158
  126. careamics/prediction/prediction_utils.py +0 -106
  127. careamics/utils/ascii_logo.txt +0 -9
  128. careamics/utils/augment.py +0 -65
  129. careamics/utils/normalization.py +0 -55
  130. careamics/utils/validators.py +0 -170
  131. careamics/utils/wandb.py +0 -121
  132. careamics-0.1.0rc2.dist-info/METADATA +0 -81
  133. careamics-0.1.0rc2.dist-info/RECORD +0 -47
  134. {careamics-0.1.0rc2.dist-info → careamics-0.1.0rc4.dist-info}/licenses/LICENSE +0 -0
careamics/__init__.py CHANGED
@@ -1,5 +1,4 @@
1
- """Main module."""
2
-
1
+ """Main CAREamics module."""
3
2
 
4
3
  from importlib.metadata import PackageNotFoundError, version
5
4
 
@@ -8,7 +7,20 @@ try:
8
7
  except PackageNotFoundError:
9
8
  __version__ = "uninstalled"
10
9
 
11
- __all__ = ["Engine", "Configuration", "load_configuration", "save_configuration"]
10
+ __all__ = [
11
+ "CAREamist",
12
+ "CAREamicsModuleWrapper",
13
+ "CAREamicsPredictData",
14
+ "CAREamicsTrainData",
15
+ "Configuration",
16
+ "load_configuration",
17
+ "save_configuration",
18
+ "TrainingDataWrapper",
19
+ "PredictDataWrapper",
20
+ ]
12
21
 
22
+ from .careamist import CAREamist
13
23
  from .config import Configuration, load_configuration, save_configuration
14
- from .engine import Engine as Engine
24
+ from .lightning_datamodule import CAREamicsTrainData, TrainingDataWrapper
25
+ from .lightning_module import CAREamicsModuleWrapper
26
+ from .lightning_prediction_datamodule import CAREamicsPredictData, PredictDataWrapper
@@ -0,0 +1,6 @@
1
+ """Callbacks module."""
2
+
3
+ __all__ = ["HyperParametersCallback", "ProgressBarCallback"]
4
+
5
+ from .hyperparameters_callback import HyperParametersCallback
6
+ from .progress_bar_callback import ProgressBarCallback
@@ -0,0 +1,42 @@
1
+ from pytorch_lightning import LightningModule, Trainer
2
+ from pytorch_lightning.callbacks import Callback
3
+
4
+ from careamics.config import Configuration
5
+
6
+
7
+ class HyperParametersCallback(Callback):
8
+ """
9
+ Callback allowing saving CAREamics configuration as hyperparameters in the model.
10
+
11
+ This allows saving the configuration as dictionnary in the checkpoints, and
12
+ loading it subsequently in a CAREamist instance.
13
+
14
+ Attributes
15
+ ----------
16
+ config : Configuration
17
+ CAREamics configuration to be saved as hyperparameter in the model.
18
+ """
19
+
20
+ def __init__(self, config: Configuration):
21
+ """
22
+ Constructor.
23
+
24
+ Parameters
25
+ ----------
26
+ config : Configuration
27
+ CAREamics configuration to be saved as hyperparameter in the model.
28
+ """
29
+ self.config = config
30
+
31
+ def on_train_start(self, trainer: Trainer, pl_module: LightningModule):
32
+ """
33
+ Update the hyperparameters of the model with the configuration on train start.
34
+
35
+ Parameters
36
+ ----------
37
+ trainer : Trainer
38
+ PyTorch Lightning trainer.
39
+ pl_module : LightningModule
40
+ PyTorch Lightning module.
41
+ """
42
+ pl_module.hparams.update(self.config.model_dump())
@@ -0,0 +1,57 @@
1
+ import sys
2
+ from typing import Dict, Union
3
+
4
+ from pytorch_lightning import LightningModule, Trainer
5
+ from pytorch_lightning.callbacks import TQDMProgressBar
6
+ from tqdm import tqdm
7
+
8
+
9
+ class ProgressBarCallback(TQDMProgressBar):
10
+ """Progress bar for training and validation steps."""
11
+
12
+ def init_train_tqdm(self) -> tqdm:
13
+ """Override this to customize the tqdm bar for training."""
14
+ bar = tqdm(
15
+ desc="Training",
16
+ position=(2 * self.process_position),
17
+ disable=self.is_disabled,
18
+ leave=True,
19
+ dynamic_ncols=True,
20
+ file=sys.stdout,
21
+ smoothing=0,
22
+ )
23
+ return bar
24
+
25
+ def init_validation_tqdm(self) -> tqdm:
26
+ """Override this to customize the tqdm bar for validation."""
27
+ # The main progress bar doesn't exist in `trainer.validate()`
28
+ has_main_bar = self.train_progress_bar is not None
29
+ bar = tqdm(
30
+ desc="Validating",
31
+ position=(2 * self.process_position + has_main_bar),
32
+ disable=self.is_disabled,
33
+ leave=False,
34
+ dynamic_ncols=True,
35
+ file=sys.stdout,
36
+ )
37
+ return bar
38
+
39
+ def init_test_tqdm(self) -> tqdm:
40
+ """Override this to customize the tqdm bar for testing."""
41
+ bar = tqdm(
42
+ desc="Testing",
43
+ position=(2 * self.process_position),
44
+ disable=self.is_disabled,
45
+ leave=True,
46
+ dynamic_ncols=False,
47
+ ncols=100,
48
+ file=sys.stdout,
49
+ )
50
+ return bar
51
+
52
+ def get_metrics(
53
+ self, trainer: Trainer, pl_module: LightningModule
54
+ ) -> Dict[str, Union[int, str, float, Dict[str, float]]]:
55
+ """Override this to customize the metrics displayed in the progress bar."""
56
+ pbar_metrics = trainer.progress_bar_metrics
57
+ return {**pbar_metrics}