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.

Files changed (193) hide show
  1. careamics-0.1.0rc6/.github/pull_request_template.md +39 -0
  2. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.github/workflows/ci.yml +1 -1
  3. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.pre-commit-config.yaml +14 -14
  4. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/PKG-INFO +17 -61
  5. careamics-0.1.0rc6/README.md +34 -0
  6. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/example_BSD68_lightning.ipynb +0 -8
  7. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/pyproject.toml +5 -6
  8. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/hyperparameters_callback.py +10 -3
  9. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/progress_bar_callback.py +37 -4
  10. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/careamist.py +92 -55
  11. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/__init__.py +0 -1
  12. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/algorithm_model.py +5 -3
  13. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/architecture_model.py +7 -0
  14. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/custom_model.py +8 -1
  15. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/register_model.py +3 -1
  16. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/unet_model.py +3 -0
  17. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/vae_model.py +2 -0
  18. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/callback_model.py +4 -15
  19. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/configuration_example.py +4 -4
  20. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/configuration_factory.py +113 -55
  21. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/configuration_model.py +14 -16
  22. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/data_model.py +63 -165
  23. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/inference_model.py +9 -75
  24. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/optimizer_models.py +4 -4
  25. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/references/algorithm_descriptions.py +1 -0
  26. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/references/references.py +1 -0
  27. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/__init__.py +0 -2
  28. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_activations.py +2 -0
  29. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_algorithms.py +3 -1
  30. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_architectures.py +2 -0
  31. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_data.py +2 -0
  32. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_loggers.py +2 -0
  33. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_losses.py +2 -0
  34. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_optimizers.py +2 -0
  35. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_pixel_manipulations.py +3 -3
  36. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/support/supported_struct_axis.py +2 -0
  37. careamics-0.1.0rc6/src/careamics/config/support/supported_transforms.py +12 -0
  38. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/tile_information.py +2 -0
  39. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/training_model.py +1 -0
  40. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/__init__.py +3 -2
  41. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/n2v_manipulate_model.py +1 -0
  42. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/normalize_model.py +1 -0
  43. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/transform_model.py +1 -0
  44. careamics-0.1.0rc6/src/careamics/config/transformations/xy_flip_model.py +43 -0
  45. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/transformations/xy_random_rotate90_model.py +13 -7
  46. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/validators/validator_utils.py +1 -0
  47. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/conftest.py +13 -0
  48. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/__init__.py +0 -1
  49. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/dataset_utils.py +5 -4
  50. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/file_utils.py +4 -3
  51. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/read_tiff.py +6 -2
  52. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/read_utils.py +2 -0
  53. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/dataset_utils/read_zarr.py +11 -7
  54. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/in_memory_dataset.py +84 -76
  55. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/iterable_dataset.py +166 -134
  56. careamics-0.1.0rc6/src/careamics/dataset/patching/__init__.py +1 -0
  57. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/patching.py +56 -14
  58. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/random_patching.py +8 -2
  59. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/sequential_patching.py +20 -14
  60. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/tiled_patching.py +13 -7
  61. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/patching/validate_patch_dimension.py +2 -0
  62. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/zarr_dataset.py +2 -0
  63. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_datamodule.py +63 -41
  64. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_module.py +9 -3
  65. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_prediction_datamodule.py +15 -20
  66. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/lightning_prediction_loop.py +8 -6
  67. careamics-0.1.0rc6/src/careamics/losses/__init__.py +5 -0
  68. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/losses/loss_factory.py +2 -1
  69. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/losses/losses.py +11 -7
  70. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/__init__.py +0 -1
  71. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/_readme_factory.py +2 -1
  72. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/bioimage_utils.py +1 -0
  73. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/model_description.py +1 -0
  74. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bmz_io.py +4 -3
  75. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/activation.py +2 -0
  76. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/layers.py +122 -25
  77. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/model_factory.py +2 -1
  78. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/unet.py +114 -19
  79. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/prediction/stitch_prediction.py +2 -5
  80. careamics-0.1.0rc6/src/careamics/transforms/__init__.py +20 -0
  81. careamics-0.1.0rc6/src/careamics/transforms/compose.py +124 -0
  82. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/n2v_manipulate.py +65 -34
  83. careamics-0.1.0rc6/src/careamics/transforms/normalize.py +172 -0
  84. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/pixel_manipulation.py +7 -7
  85. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/struct_mask_parameters.py +3 -1
  86. careamics-0.1.0rc6/src/careamics/transforms/transform.py +24 -0
  87. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/transforms/tta.py +2 -2
  88. careamics-0.1.0rc6/src/careamics/transforms/xy_flip.py +123 -0
  89. careamics-0.1.0rc6/src/careamics/transforms/xy_random_rotate90.py +101 -0
  90. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/__init__.py +0 -1
  91. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/base_enum.py +28 -0
  92. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/context.py +1 -0
  93. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/logging.py +1 -0
  94. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/metrics.py +1 -0
  95. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/path_utils.py +2 -0
  96. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/ram.py +2 -0
  97. careamics-0.1.0rc6/src/careamics/utils/receptive_field.py +108 -0
  98. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/torch_utils.py +1 -0
  99. careamics-0.1.0rc6/tests/config/test_configuration_factory.py +595 -0
  100. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_configuration_model.py +1 -1
  101. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_data_model.py +12 -59
  102. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_inference_model.py +0 -68
  103. careamics-0.1.0rc6/tests/config/transformations/test_n2v_manipulate_model.py +33 -0
  104. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/transformations/test_normalize_model.py +9 -0
  105. careamics-0.1.0rc6/tests/config/transformations/test_xy_flip_model.py +10 -0
  106. careamics-0.1.0rc6/tests/config/transformations/test_xy_random_rotate90_model.py +10 -0
  107. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/conftest.py +1 -1
  108. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_sequential_patching.py +17 -0
  109. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/test_in_memory_dataset.py +3 -3
  110. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/models/test_unet.py +40 -0
  111. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_careamist.py +180 -34
  112. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_lightning_module.py +40 -2
  113. careamics-0.1.0rc6/tests/transforms/test_compose.py +131 -0
  114. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_manipulate_n2v.py +5 -9
  115. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_normalize.py +3 -3
  116. careamics-0.1.0rc6/tests/transforms/test_xy_flip.py +137 -0
  117. careamics-0.1.0rc6/tests/transforms/test_xy_random_rotate90.py +96 -0
  118. careamics-0.1.0rc4/.github/PR_TEMPLATE/pull_request.md +0 -22
  119. careamics-0.1.0rc4/README.md +0 -78
  120. careamics-0.1.0rc4/src/careamics/config/noise_models.py +0 -162
  121. careamics-0.1.0rc4/src/careamics/config/support/supported_extraction_strategies.py +0 -24
  122. careamics-0.1.0rc4/src/careamics/config/support/supported_transforms.py +0 -23
  123. careamics-0.1.0rc4/src/careamics/config/transformations/nd_flip_model.py +0 -32
  124. careamics-0.1.0rc4/src/careamics/dataset/patching/__init__.py +0 -8
  125. careamics-0.1.0rc4/src/careamics/dataset/patching/patch_transform.py +0 -44
  126. careamics-0.1.0rc4/src/careamics/losses/__init__.py +0 -7
  127. careamics-0.1.0rc4/src/careamics/losses/noise_model_factory.py +0 -40
  128. careamics-0.1.0rc4/src/careamics/losses/noise_models.py +0 -524
  129. careamics-0.1.0rc4/src/careamics/transforms/__init__.py +0 -41
  130. careamics-0.1.0rc4/src/careamics/transforms/nd_flip.py +0 -93
  131. careamics-0.1.0rc4/src/careamics/transforms/normalize.py +0 -109
  132. careamics-0.1.0rc4/src/careamics/transforms/xy_random_rotate90.py +0 -95
  133. careamics-0.1.0rc4/src/careamics/utils/receptive_field.py +0 -102
  134. careamics-0.1.0rc4/tests/config/test_configuration_factory.py +0 -222
  135. careamics-0.1.0rc4/tests/config/transformations/test_n2v_manipulate_model.py +0 -26
  136. careamics-0.1.0rc4/tests/transforms/test_nd_flip.py +0 -129
  137. careamics-0.1.0rc4/tests/transforms/test_xy_random_rotate90.py +0 -117
  138. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  139. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  140. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/.gitignore +0 -0
  141. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/LICENSE +0 -0
  142. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2n/example_SEM_careamist.ipynb +0 -0
  143. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2n/n2n_2D_SEM.yml +0 -0
  144. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/example_BSD68_careamist.ipynb +0 -0
  145. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/example_SEM_lightning.ipynb +0 -0
  146. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/n2v/n2v_2D_BSD.yml +0 -0
  147. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/2D/pn2v/pN2V_Convallaria.yml +0 -0
  148. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/3D/example_flywing_3D.ipynb +0 -0
  149. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/examples/3D/n2v_flywing_3D.yml +0 -0
  150. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/__init__.py +0 -0
  151. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/callbacks/__init__.py +0 -0
  152. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/architectures/__init__.py +0 -0
  153. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/references/__init__.py +0 -0
  154. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/config/validators/__init__.py +0 -0
  155. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/dataset/__init__.py +0 -0
  156. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/bioimage/__init__.py +0 -0
  157. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/model_io/model_io_utils.py +0 -0
  158. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/models/__init__.py +0 -0
  159. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/prediction/__init__.py +0 -0
  160. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/py.typed +0 -0
  161. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/src/careamics/utils/running_stats.py +0 -0
  162. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_architecture_model.py +0 -0
  163. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_custom_model.py +0 -0
  164. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_register_model.py +0 -0
  165. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/architectures/test_unet_model.py +0 -0
  166. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/support/test_supported_data.py +0 -0
  167. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/support/test_supported_optimizers.py +0 -0
  168. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_algorithm_model.py +0 -0
  169. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_full_config_example.py +0 -0
  170. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_optimizers_model.py +0 -0
  171. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_tile_information.py +0 -0
  172. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/test_training_model.py +0 -0
  173. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/config/validators/test_validator_utils.py +0 -0
  174. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/dataset_utils/test_list_files.py +0 -0
  175. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/dataset_utils/test_read_tiff.py +0 -0
  176. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_patching_utils.py +0 -0
  177. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_random_patching.py +0 -0
  178. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/patching/test_tiled_patching.py +0 -0
  179. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/dataset/test_iterable_dataset.py +0 -0
  180. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/model_io/test_bmz_io.py +0 -0
  181. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/models/test_model_factory.py +0 -0
  182. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/prediction/test_stitch_prediction.py +0 -0
  183. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_conftest.py +0 -0
  184. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_lightning_datamodule.py +0 -0
  185. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/test_lightning_prediction_datamodule.py +0 -0
  186. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_pixel_manipulation.py +0 -0
  187. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/transforms/test_supported_transforms.py +0 -0
  188. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_base_enum.py +0 -0
  189. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_context.py +0 -0
  190. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_logging.py +0 -0
  191. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_metrics.py +0 -0
  192. {careamics-0.1.0rc4 → careamics-0.1.0rc6}/tests/utils/test_torch_utils.py +0 -0
  193. {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.14
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.0.292
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.9.1
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.5.1
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.6.0
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
- rev: 1.7.0
46
- hooks:
47
- - id: nbqa-ruff
48
- args: [--fix]
49
- - id: nbqa-black
50
- #- id: nbqa-mypy
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.6.1
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.0rc4
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 Restoration
51
+ # CAREamics
52
52
 
53
53
  [![License](https://img.shields.io/pypi/l/careamics.svg?color=green)](https://github.com/CAREamics/careamics/blob/main/LICENSE)
54
54
  [![PyPI](https://img.shields.io/pypi/v/careamics.svg?color=green)](https://pypi.org/project/careamics)
@@ -56,67 +56,23 @@ Description-Content-Type: text/markdown
56
56
  [![CI](https://github.com/CAREamics/careamics/actions/workflows/ci.yml/badge.svg)](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
57
57
  [![codecov](https://codecov.io/gh/CAREamics/careamics/branch/main/graph/badge.svg)](https://codecov.io/gh/CAREamics/careamics)
58
58
 
59
- ## Installation
60
59
 
61
- ``` bash
62
- pip install careamics
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
- ## Usage
63
+ ## Why CAREamics?
67
64
 
68
- CAREamics uses the Engine object to construct the pipeline for both training and prediction. First we import the Engine.
69
- ```python
70
- from careamics_restoration.engine import Engine
71
- ```
72
- The Engine could be initialized in 2 ways:
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
- Specify the mandatory parameters in the config file
76
- ```yaml
77
- experiment_name: Name of the experiment
78
- working_directory: Path to the working directory, where all the outputs will be stored
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
- algorithm:
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
+ [![License](https://img.shields.io/pypi/l/careamics.svg?color=green)](https://github.com/CAREamics/careamics/blob/main/LICENSE)
10
+ [![PyPI](https://img.shields.io/pypi/v/careamics.svg?color=green)](https://pypi.org/project/careamics)
11
+ [![Python Version](https://img.shields.io/pypi/pyversions/careamics.svg?color=green)](https://python.org)
12
+ [![CI](https://github.com/CAREamics/careamics/actions/workflows/ci.yml/badge.svg)](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
13
+ [![codecov](https://codecov.io/gh/CAREamics/careamics/branch/main/graph/badge.svg)](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
 
@@ -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}