careamics 0.1.0rc6__py3-none-any.whl → 0.1.0rc8__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 (91) hide show
  1. careamics/__init__.py +1 -14
  2. careamics/careamist.py +212 -294
  3. careamics/config/__init__.py +0 -3
  4. careamics/config/algorithm_model.py +8 -15
  5. careamics/config/architectures/architecture_model.py +1 -0
  6. careamics/config/architectures/custom_model.py +5 -3
  7. careamics/config/architectures/unet_model.py +19 -0
  8. careamics/config/architectures/vae_model.py +1 -0
  9. careamics/config/callback_model.py +76 -34
  10. careamics/config/configuration_factory.py +18 -98
  11. careamics/config/configuration_model.py +23 -18
  12. careamics/config/data_model.py +103 -54
  13. careamics/config/inference_model.py +41 -19
  14. careamics/config/optimizer_models.py +13 -7
  15. careamics/config/support/supported_data.py +29 -4
  16. careamics/config/support/supported_transforms.py +0 -1
  17. careamics/config/tile_information.py +36 -58
  18. careamics/config/training_model.py +5 -1
  19. careamics/config/transformations/normalize_model.py +32 -4
  20. careamics/config/validators/validator_utils.py +1 -1
  21. careamics/dataset/__init__.py +12 -1
  22. careamics/dataset/dataset_utils/__init__.py +8 -7
  23. careamics/dataset/dataset_utils/file_utils.py +2 -2
  24. careamics/dataset/dataset_utils/iterate_over_files.py +83 -0
  25. careamics/dataset/dataset_utils/running_stats.py +186 -0
  26. careamics/dataset/in_memory_dataset.py +84 -173
  27. careamics/dataset/in_memory_pred_dataset.py +88 -0
  28. careamics/dataset/in_memory_tiled_pred_dataset.py +129 -0
  29. careamics/dataset/iterable_dataset.py +97 -250
  30. careamics/dataset/iterable_pred_dataset.py +122 -0
  31. careamics/dataset/iterable_tiled_pred_dataset.py +140 -0
  32. careamics/dataset/patching/patching.py +97 -52
  33. careamics/dataset/patching/random_patching.py +9 -4
  34. careamics/dataset/patching/validate_patch_dimension.py +5 -3
  35. careamics/dataset/tiling/__init__.py +10 -0
  36. careamics/dataset/tiling/collate_tiles.py +33 -0
  37. careamics/dataset/{patching → tiling}/tiled_patching.py +4 -4
  38. careamics/file_io/__init__.py +7 -0
  39. careamics/file_io/read/__init__.py +11 -0
  40. careamics/file_io/read/get_func.py +56 -0
  41. careamics/{dataset/dataset_utils/read_tiff.py → file_io/read/tiff.py} +3 -10
  42. careamics/file_io/write/__init__.py +9 -0
  43. careamics/file_io/write/get_func.py +59 -0
  44. careamics/file_io/write/tiff.py +39 -0
  45. careamics/lightning/__init__.py +17 -0
  46. careamics/{lightning_module.py → lightning/lightning_module.py} +69 -92
  47. careamics/{lightning_prediction_datamodule.py → lightning/predict_data_module.py} +120 -178
  48. careamics/{lightning_datamodule.py → lightning/train_data_module.py} +135 -220
  49. careamics/lvae_training/__init__.py +0 -0
  50. careamics/lvae_training/data_modules.py +1220 -0
  51. careamics/lvae_training/data_utils.py +618 -0
  52. careamics/lvae_training/eval_utils.py +905 -0
  53. careamics/lvae_training/get_config.py +84 -0
  54. careamics/lvae_training/lightning_module.py +701 -0
  55. careamics/lvae_training/metrics.py +214 -0
  56. careamics/lvae_training/train_lvae.py +339 -0
  57. careamics/lvae_training/train_utils.py +121 -0
  58. careamics/model_io/bioimage/model_description.py +40 -32
  59. careamics/model_io/bmz_io.py +2 -2
  60. careamics/model_io/model_io_utils.py +6 -3
  61. careamics/models/lvae/__init__.py +0 -0
  62. careamics/models/lvae/layers.py +1998 -0
  63. careamics/models/lvae/likelihoods.py +312 -0
  64. careamics/models/lvae/lvae.py +985 -0
  65. careamics/models/lvae/noise_models.py +409 -0
  66. careamics/models/lvae/utils.py +395 -0
  67. careamics/prediction_utils/__init__.py +10 -0
  68. careamics/prediction_utils/prediction_outputs.py +137 -0
  69. careamics/prediction_utils/stitch_prediction.py +103 -0
  70. careamics/transforms/n2v_manipulate.py +3 -1
  71. careamics/transforms/normalize.py +139 -68
  72. careamics/transforms/pixel_manipulation.py +33 -9
  73. careamics/transforms/tta.py +43 -29
  74. careamics/utils/__init__.py +2 -0
  75. careamics/utils/autocorrelation.py +40 -0
  76. careamics/utils/ram.py +2 -2
  77. {careamics-0.1.0rc6.dist-info → careamics-0.1.0rc8.dist-info}/METADATA +7 -6
  78. careamics-0.1.0rc8.dist-info/RECORD +135 -0
  79. {careamics-0.1.0rc6.dist-info → careamics-0.1.0rc8.dist-info}/WHEEL +1 -1
  80. careamics/config/configuration_example.py +0 -89
  81. careamics/dataset/dataset_utils/read_utils.py +0 -27
  82. careamics/lightning_prediction_loop.py +0 -118
  83. careamics/prediction/__init__.py +0 -7
  84. careamics/prediction/stitch_prediction.py +0 -70
  85. careamics/utils/running_stats.py +0 -43
  86. careamics-0.1.0rc6.dist-info/RECORD +0 -107
  87. /careamics/{dataset/dataset_utils/read_zarr.py → file_io/read/zarr.py} +0 -0
  88. /careamics/{callbacks → lightning/callbacks}/__init__.py +0 -0
  89. /careamics/{callbacks → lightning/callbacks}/hyperparameters_callback.py +0 -0
  90. /careamics/{callbacks → lightning/callbacks}/progress_bar_callback.py +0 -0
  91. {careamics-0.1.0rc6.dist-info → careamics-0.1.0rc8.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,84 @@
1
+ """
2
+ Here there are functions to define a config file.
3
+ """
4
+
5
+ import os
6
+
7
+ import ml_collections
8
+
9
+ from careamics.lvae_training.data_utils import DataType
10
+ from careamics.models.lvae.utils import LossType
11
+
12
+
13
+ def _init_config():
14
+ """
15
+ Create a default config object with all the required fields.
16
+ """
17
+ config = ml_collections.ConfigDict()
18
+
19
+ config.data = ml_collections.ConfigDict()
20
+
21
+ config.model = ml_collections.ConfigDict()
22
+
23
+ config.loss = ml_collections.ConfigDict()
24
+
25
+ config.training = ml_collections.ConfigDict()
26
+
27
+ config.workdir = os.getcwd()
28
+ config.datadir = ""
29
+ return config
30
+
31
+
32
+ def get_config():
33
+ config = _init_config()
34
+
35
+ data = config.data
36
+ data.image_size = 128 # the patch size
37
+ # data.grid_size = 32 # the retained sub-patch when doing inner tiling
38
+ data.multiscale_lowres_count = (
39
+ None # todo: this one will be an issue in current careamics
40
+ )
41
+ data.num_channels = 2 # in careamics probably in lvae pydantic model
42
+
43
+ model = config.model # all in lvae pydantic model
44
+ model.z_dims = [128, 128, 128, 128]
45
+ model.n_filters = 64
46
+ model.dropout = 0.1
47
+ model.nonlin = "elu"
48
+ model.enable_noise_model = True
49
+ model.analytical_kl = False
50
+ model.predict_logvar = None
51
+
52
+ loss = config.loss # in algorithm config
53
+ loss.loss_type = LossType.Elbo # LossType.Elbo or LossType.DenoiSplitMuSplit
54
+ loss.kl_loss_formulation = "" # '', 'usplit', 'denoisplit'
55
+
56
+ training = config.training
57
+ training.lr = 0.001 # in algorithm config
58
+ training.lr_scheduler_patience = 30
59
+ training.batch_size = 32 # in data config
60
+ training.earlystop_patience = (
61
+ 200 # in training config in the callbacks (early stopping)
62
+ )
63
+ training.max_epochs = 400 # training config
64
+ training.pre_trained_ckpt_fpath = "" # this is through the careamics API
65
+
66
+ # Set of attributes not to include in the PyDantic data model
67
+ training.num_workers = (
68
+ 4 # this is in the data config, passed in the dataloader parameters
69
+ )
70
+ training.grad_clip_norm_value = 0.5 # Taken from https://github.com/openai/vdvae/blob/main/hps.py#L38 # this maybe should be in a new trainer_parameters dict in the training config pydantic model
71
+ training.gradient_clip_algorithm = "value"
72
+ training.precision = 32
73
+ data.data_type = DataType.BioSR_MRC
74
+ data.ch1_fname = "ER/GT_all.mrc"
75
+ data.ch2_fname = "Microtubules/GT_all.mrc"
76
+ model.noise_model_ch1_fpath = "/group/jug/ashesh/training_pre_eccv/noise_model/2402/429/GMMNoiseModel_ER-GT_all__6_4_Clip0.0-1.0_Sig0.125_UpNone_Norm0_bootstrap.npz"
77
+ model.noise_model_ch2_fpath = "/group/jug/ashesh/training_pre_eccv/noise_model/2402/434/GMMNoiseModel_Microtubules-GT_all__6_4_Clip0.0-1.0_Sig0.125_UpNone_Norm0_bootstrap.npz"
78
+ # Parameters to apply synthetic noise to data (e.g., used with BioSR data for denoiSplit)
79
+ data.poisson_noise_factor = 1000
80
+ data.enable_gaussian_noise = True
81
+ data.synthetic_gaussian_scale = 4450
82
+ data.input_has_dependant_noise = True
83
+
84
+ return config