careamics 0.0.1__py3-none-any.whl → 0.1.0rc2__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 +7 -1
- careamics/bioimage/__init__.py +15 -0
- careamics/bioimage/docs/Noise2Void.md +5 -0
- careamics/bioimage/docs/__init__.py +1 -0
- careamics/bioimage/io.py +182 -0
- careamics/bioimage/rdf.py +105 -0
- careamics/config/__init__.py +11 -0
- careamics/config/algorithm.py +231 -0
- careamics/config/config.py +297 -0
- careamics/config/config_filter.py +44 -0
- careamics/config/data.py +194 -0
- careamics/config/torch_optim.py +118 -0
- careamics/config/training.py +534 -0
- careamics/dataset/__init__.py +1 -0
- careamics/dataset/dataset_utils.py +111 -0
- careamics/dataset/extraction_strategy.py +21 -0
- careamics/dataset/in_memory_dataset.py +202 -0
- careamics/dataset/patching.py +492 -0
- careamics/dataset/prepare_dataset.py +175 -0
- careamics/dataset/tiff_dataset.py +212 -0
- careamics/engine.py +1014 -0
- careamics/losses/__init__.py +4 -0
- careamics/losses/loss_factory.py +38 -0
- careamics/losses/losses.py +34 -0
- careamics/manipulation/__init__.py +4 -0
- careamics/manipulation/pixel_manipulation.py +158 -0
- careamics/models/__init__.py +4 -0
- careamics/models/layers.py +152 -0
- careamics/models/model_factory.py +251 -0
- careamics/models/unet.py +322 -0
- careamics/prediction/__init__.py +9 -0
- careamics/prediction/prediction_utils.py +106 -0
- careamics/utils/__init__.py +20 -0
- careamics/utils/ascii_logo.txt +9 -0
- careamics/utils/augment.py +65 -0
- careamics/utils/context.py +45 -0
- careamics/utils/logging.py +321 -0
- careamics/utils/metrics.py +160 -0
- careamics/utils/normalization.py +55 -0
- careamics/utils/torch_utils.py +89 -0
- careamics/utils/validators.py +170 -0
- careamics/utils/wandb.py +121 -0
- careamics-0.1.0rc2.dist-info/METADATA +81 -0
- careamics-0.1.0rc2.dist-info/RECORD +47 -0
- {careamics-0.0.1.dist-info → careamics-0.1.0rc2.dist-info}/WHEEL +1 -1
- {careamics-0.0.1.dist-info → careamics-0.1.0rc2.dist-info}/licenses/LICENSE +1 -1
- careamics-0.0.1.dist-info/METADATA +0 -46
- careamics-0.0.1.dist-info/RECORD +0 -6
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Validator functions.
|
|
3
|
+
|
|
4
|
+
These functions are used to validate dimensions and axes of inputs.
|
|
5
|
+
"""
|
|
6
|
+
from typing import List
|
|
7
|
+
|
|
8
|
+
import numpy as np
|
|
9
|
+
|
|
10
|
+
AXES = "STCZYX"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def check_axes_validity(axes: str) -> None:
|
|
14
|
+
"""
|
|
15
|
+
Sanity check on axes.
|
|
16
|
+
|
|
17
|
+
The constraints on the axes are the following:
|
|
18
|
+
- must be a combination of 'STCZYX'
|
|
19
|
+
- must not contain duplicates
|
|
20
|
+
- must contain at least 2 contiguous axes: X and Y
|
|
21
|
+
- must contain at most 4 axes
|
|
22
|
+
- cannot contain both S and T axes
|
|
23
|
+
- C is currently not allowed
|
|
24
|
+
|
|
25
|
+
Parameters
|
|
26
|
+
----------
|
|
27
|
+
axes : str
|
|
28
|
+
Axes to validate.
|
|
29
|
+
"""
|
|
30
|
+
_axes = axes.upper()
|
|
31
|
+
|
|
32
|
+
# Minimum is 2 (XY) and maximum is 4 (TZYX)
|
|
33
|
+
if len(_axes) < 2 or len(_axes) > 4:
|
|
34
|
+
raise ValueError(
|
|
35
|
+
f"Invalid axes {axes}. Must contain at least 2 and at most 4 axes."
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
# all characters must be in REF_AXES = 'STCZYX'
|
|
39
|
+
if not all(s in AXES for s in _axes):
|
|
40
|
+
raise ValueError(f"Invalid axes {axes}. Must be a combination of {AXES}.")
|
|
41
|
+
|
|
42
|
+
# check for repeating characters
|
|
43
|
+
for i, s in enumerate(_axes):
|
|
44
|
+
if i != _axes.rfind(s):
|
|
45
|
+
raise ValueError(
|
|
46
|
+
f"Invalid axes {axes}. Cannot contain duplicate axes"
|
|
47
|
+
f" (got multiple {axes[i]})."
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
# currently no implementation for C
|
|
51
|
+
if "C" in _axes:
|
|
52
|
+
raise NotImplementedError("Currently, C axis is not supported.")
|
|
53
|
+
|
|
54
|
+
# prevent S and T axes at the same time
|
|
55
|
+
if "T" in _axes and "S" in _axes:
|
|
56
|
+
raise NotImplementedError(
|
|
57
|
+
f"Invalid axes {axes}. Cannot contain both S and T axes."
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
# prior: X and Y contiguous (#FancyComments)
|
|
61
|
+
# right now the next check is invalidating this, but in the future, we might
|
|
62
|
+
# allow random order of axes (or at least XY and YX)
|
|
63
|
+
if "XY" not in _axes and "YX" not in _axes:
|
|
64
|
+
raise ValueError(f"Invalid axes {axes}. X and Y must be contiguous.")
|
|
65
|
+
|
|
66
|
+
# check that the axes are in the right order
|
|
67
|
+
for i, s in enumerate(_axes):
|
|
68
|
+
if i < len(_axes) - 1:
|
|
69
|
+
index_s = AXES.find(s)
|
|
70
|
+
index_next = AXES.find(_axes[i + 1])
|
|
71
|
+
|
|
72
|
+
if index_s > index_next:
|
|
73
|
+
raise ValueError(
|
|
74
|
+
f"Invalid axes {axes}. Axes must be in the order {AXES}."
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def add_axes(input_array: np.ndarray, axes: str) -> np.ndarray:
|
|
79
|
+
"""
|
|
80
|
+
Add missing axes to the input, typically batch and channel.
|
|
81
|
+
|
|
82
|
+
This method validates the axes first. Then it inspects the input array and add
|
|
83
|
+
missing dimensions if necessary.
|
|
84
|
+
|
|
85
|
+
Parameters
|
|
86
|
+
----------
|
|
87
|
+
input_array : np.ndarray
|
|
88
|
+
Input array.
|
|
89
|
+
axes : str
|
|
90
|
+
Axes to add.
|
|
91
|
+
|
|
92
|
+
Returns
|
|
93
|
+
-------
|
|
94
|
+
np.ndarray
|
|
95
|
+
Array with new singleton axes.
|
|
96
|
+
"""
|
|
97
|
+
# validate axes
|
|
98
|
+
check_axes_validity(axes)
|
|
99
|
+
|
|
100
|
+
# is 3D
|
|
101
|
+
is_3D = "Z" in axes
|
|
102
|
+
|
|
103
|
+
# number of dims
|
|
104
|
+
n_dims = 5 if is_3D else 4
|
|
105
|
+
|
|
106
|
+
# array of dim 2, 3 or 4
|
|
107
|
+
if len(input_array.shape) < n_dims:
|
|
108
|
+
if "S" not in axes and "T" not in axes:
|
|
109
|
+
input_array = input_array[np.newaxis, ...]
|
|
110
|
+
|
|
111
|
+
# still missing C dimension
|
|
112
|
+
if len(input_array.shape) < n_dims:
|
|
113
|
+
input_array = input_array[:, np.newaxis, ...]
|
|
114
|
+
|
|
115
|
+
return input_array
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def check_tiling_validity(tile_shape: List[int], overlaps: List[int]) -> None:
|
|
119
|
+
"""
|
|
120
|
+
Check that the tiling parameters are valid.
|
|
121
|
+
|
|
122
|
+
Parameters
|
|
123
|
+
----------
|
|
124
|
+
tile_shape : List[int]
|
|
125
|
+
Shape of the tiles.
|
|
126
|
+
overlaps : List[int]
|
|
127
|
+
Overlap between tiles.
|
|
128
|
+
|
|
129
|
+
Raises
|
|
130
|
+
------
|
|
131
|
+
ValueError
|
|
132
|
+
If one of the parameters is None.
|
|
133
|
+
ValueError
|
|
134
|
+
If one of the element is zero.
|
|
135
|
+
ValueError
|
|
136
|
+
If one of the element is non-divisible by 2.
|
|
137
|
+
ValueError
|
|
138
|
+
If the number of elements in `overlaps` and `tile_shape` is different.
|
|
139
|
+
ValueError
|
|
140
|
+
If one of the overlaps is larger than the corresponding tile shape.
|
|
141
|
+
"""
|
|
142
|
+
# cannot be None
|
|
143
|
+
if tile_shape is None or overlaps is None:
|
|
144
|
+
raise ValueError(
|
|
145
|
+
"Cannot use tiling without specifying `tile_shape` and "
|
|
146
|
+
"`overlaps`, make sure they have been correctly specified."
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# non-zero and divisible by two
|
|
150
|
+
for dims_list in [tile_shape, overlaps]:
|
|
151
|
+
for dim in dims_list:
|
|
152
|
+
if dim < 1:
|
|
153
|
+
raise ValueError(f"Entry must be non-null positive (got {dim}).")
|
|
154
|
+
|
|
155
|
+
if dim % 2 != 0:
|
|
156
|
+
raise ValueError(f"Entry must be divisible by 2 (got {dim}).")
|
|
157
|
+
|
|
158
|
+
# same length
|
|
159
|
+
if len(overlaps) != len(tile_shape):
|
|
160
|
+
raise ValueError(
|
|
161
|
+
f"Overlaps ({len(overlaps)}) and tile shape ({len(tile_shape)}) must "
|
|
162
|
+
f"have the same number of dimensions."
|
|
163
|
+
)
|
|
164
|
+
|
|
165
|
+
# overlaps smaller than tile shape
|
|
166
|
+
for overlap, tile_dim in zip(overlaps, tile_shape):
|
|
167
|
+
if overlap >= tile_dim:
|
|
168
|
+
raise ValueError(
|
|
169
|
+
f"Overlap ({overlap}) must be smaller than tile shape ({tile_dim})."
|
|
170
|
+
)
|
careamics/utils/wandb.py
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"""
|
|
2
|
+
A WandB logger for CAREamics.
|
|
3
|
+
|
|
4
|
+
Implements a WandB class for use within the Engine.
|
|
5
|
+
"""
|
|
6
|
+
import sys
|
|
7
|
+
from pathlib import Path
|
|
8
|
+
from typing import Dict, Union
|
|
9
|
+
|
|
10
|
+
import torch
|
|
11
|
+
import wandb
|
|
12
|
+
|
|
13
|
+
from careamics.config import Configuration
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def is_notebook() -> bool:
|
|
17
|
+
"""
|
|
18
|
+
Check if the code is executed from a notebook or a qtconsole.
|
|
19
|
+
|
|
20
|
+
Returns
|
|
21
|
+
-------
|
|
22
|
+
bool
|
|
23
|
+
True if the code is executed from a notebooks, False otherwise.
|
|
24
|
+
"""
|
|
25
|
+
try:
|
|
26
|
+
from IPython import get_ipython
|
|
27
|
+
|
|
28
|
+
shell = get_ipython().__class__.__name__
|
|
29
|
+
if shell == "ZMQInteractiveShell":
|
|
30
|
+
return True # Jupyter notebook or qtconsole
|
|
31
|
+
else:
|
|
32
|
+
return False
|
|
33
|
+
except (NameError, ModuleNotFoundError):
|
|
34
|
+
return False
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class WandBLogging:
|
|
38
|
+
"""
|
|
39
|
+
WandB logging class.
|
|
40
|
+
|
|
41
|
+
Parameters
|
|
42
|
+
----------
|
|
43
|
+
experiment_name : str
|
|
44
|
+
Name of the experiment.
|
|
45
|
+
log_path : Path
|
|
46
|
+
Path in which to save the WandB log.
|
|
47
|
+
config : Configuration
|
|
48
|
+
Configuration of the model.
|
|
49
|
+
model_to_watch : torch.nn.Module
|
|
50
|
+
Model.
|
|
51
|
+
save_code : bool, optional
|
|
52
|
+
Whether to save the code, by default True.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
def __init__(
|
|
56
|
+
self,
|
|
57
|
+
experiment_name: str,
|
|
58
|
+
log_path: Path,
|
|
59
|
+
config: Configuration,
|
|
60
|
+
model_to_watch: torch.nn.Module,
|
|
61
|
+
save_code: bool = True,
|
|
62
|
+
):
|
|
63
|
+
"""
|
|
64
|
+
Constructor.
|
|
65
|
+
|
|
66
|
+
Parameters
|
|
67
|
+
----------
|
|
68
|
+
experiment_name : str
|
|
69
|
+
Name of the experiment.
|
|
70
|
+
log_path : Path
|
|
71
|
+
Path in which to save the WandB log.
|
|
72
|
+
config : Configuration
|
|
73
|
+
Configuration of the model.
|
|
74
|
+
model_to_watch : torch.nn.Module
|
|
75
|
+
Model.
|
|
76
|
+
save_code : bool, optional
|
|
77
|
+
Whether to save the code, by default True.
|
|
78
|
+
"""
|
|
79
|
+
self.run = wandb.init(
|
|
80
|
+
project="careamics-restoration",
|
|
81
|
+
dir=log_path,
|
|
82
|
+
name=experiment_name,
|
|
83
|
+
config=config.model_dump() if config else None,
|
|
84
|
+
# save_code=save_code,
|
|
85
|
+
)
|
|
86
|
+
if model_to_watch:
|
|
87
|
+
wandb.watch(model_to_watch, log="all", log_freq=1)
|
|
88
|
+
if save_code:
|
|
89
|
+
if is_notebook():
|
|
90
|
+
# Get all sys path and select the root
|
|
91
|
+
code_path = Path([p for p in sys.path if "caremics" in p][-1]).parent
|
|
92
|
+
else:
|
|
93
|
+
code_path = Path("../")
|
|
94
|
+
self.log_code(code_path)
|
|
95
|
+
|
|
96
|
+
def log_metrics(self, metric_dict: Dict) -> None:
|
|
97
|
+
"""
|
|
98
|
+
Log metrics to wandb.
|
|
99
|
+
|
|
100
|
+
Parameters
|
|
101
|
+
----------
|
|
102
|
+
metric_dict : Dict
|
|
103
|
+
New metrics entry.
|
|
104
|
+
"""
|
|
105
|
+
self.run.log(metric_dict, commit=True)
|
|
106
|
+
|
|
107
|
+
def log_code(self, code_path: Union[str, Path]) -> None:
|
|
108
|
+
"""
|
|
109
|
+
Log code to wandb.
|
|
110
|
+
|
|
111
|
+
Parameters
|
|
112
|
+
----------
|
|
113
|
+
code_path : Union[str, Path]
|
|
114
|
+
Path to the code.
|
|
115
|
+
"""
|
|
116
|
+
self.run.log_code(
|
|
117
|
+
root=code_path,
|
|
118
|
+
include_fn=lambda path: path.endswith(".py")
|
|
119
|
+
or path.endswith(".yml")
|
|
120
|
+
or path.endswith(".yaml"),
|
|
121
|
+
)
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: careamics
|
|
3
|
+
Version: 0.1.0rc2
|
|
4
|
+
Summary: Toolbox for running N2V and friends.
|
|
5
|
+
Project-URL: homepage, https://careamics.github.io/
|
|
6
|
+
Project-URL: repository, https://github.com/CAREamics/careamics
|
|
7
|
+
Author-email: Igor Zubarev <igor.zubarev@fht.org>, Joran Deschamps <joran.deschamps@fht.org>, Vera Galinova <vera.galinova@fht.org>, Mehdi Seifi <mehdi.seifi@fht.org>
|
|
8
|
+
License: BSD-3-Clause
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Classifier: Development Status :: 3 - Alpha
|
|
11
|
+
Classifier: License :: OSI Approved :: BSD License
|
|
12
|
+
Classifier: Programming Language :: Python :: 3
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Typing :: Typed
|
|
19
|
+
Requires-Python: >=3.8
|
|
20
|
+
Requires-Dist: bioimageio-core
|
|
21
|
+
Requires-Dist: pydantic>=2.0
|
|
22
|
+
Requires-Dist: pyyaml
|
|
23
|
+
Requires-Dist: scikit-image
|
|
24
|
+
Requires-Dist: tifffile
|
|
25
|
+
Requires-Dist: torch
|
|
26
|
+
Requires-Dist: torchvision
|
|
27
|
+
Requires-Dist: zarr
|
|
28
|
+
Provides-Extra: all
|
|
29
|
+
Requires-Dist: careamics-portfolio; extra == 'all'
|
|
30
|
+
Requires-Dist: ipython; extra == 'all'
|
|
31
|
+
Requires-Dist: itkwidgets; extra == 'all'
|
|
32
|
+
Requires-Dist: jupyter; extra == 'all'
|
|
33
|
+
Requires-Dist: pre-commit; extra == 'all'
|
|
34
|
+
Requires-Dist: pytest; extra == 'all'
|
|
35
|
+
Requires-Dist: pytest-cov; extra == 'all'
|
|
36
|
+
Requires-Dist: torchsummary; extra == 'all'
|
|
37
|
+
Requires-Dist: wandb; extra == 'all'
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: pre-commit; extra == 'dev'
|
|
40
|
+
Requires-Dist: pytest; extra == 'dev'
|
|
41
|
+
Requires-Dist: pytest-cov; extra == 'dev'
|
|
42
|
+
Provides-Extra: notebooks
|
|
43
|
+
Requires-Dist: careamics-portfolio; extra == 'notebooks'
|
|
44
|
+
Requires-Dist: ipython; extra == 'notebooks'
|
|
45
|
+
Requires-Dist: itkwidgets; extra == 'notebooks'
|
|
46
|
+
Requires-Dist: jupyter; extra == 'notebooks'
|
|
47
|
+
Requires-Dist: torchsummary; extra == 'notebooks'
|
|
48
|
+
Requires-Dist: wandb; extra == 'notebooks'
|
|
49
|
+
Provides-Extra: test
|
|
50
|
+
Requires-Dist: pytest; extra == 'test'
|
|
51
|
+
Requires-Dist: pytest-cov; extra == 'test'
|
|
52
|
+
Requires-Dist: wandb; extra == 'test'
|
|
53
|
+
Description-Content-Type: text/markdown
|
|
54
|
+
|
|
55
|
+
<p align="center">
|
|
56
|
+
<a href="https://careamics.github.io/">
|
|
57
|
+
<img src="https://raw.githubusercontent.com/CAREamics/.github/main/profile/images/banner_careamics.png">
|
|
58
|
+
</a>
|
|
59
|
+
</p>
|
|
60
|
+
|
|
61
|
+
# CAREamics
|
|
62
|
+
|
|
63
|
+
[](https://github.com/CAREamics/careamics/blob/main/LICENSE)
|
|
64
|
+
[](https://pypi.org/project/careamics)
|
|
65
|
+
[](https://python.org)
|
|
66
|
+
[](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
|
|
67
|
+
[](https://codecov.io/gh/CAREamics/careamics)
|
|
68
|
+
|
|
69
|
+
## Installation
|
|
70
|
+
|
|
71
|
+
``` bash
|
|
72
|
+
pip install careamics
|
|
73
|
+
```
|
|
74
|
+
For more details on the options please follow the installation [guide](https://careamics.github.io/installation/).
|
|
75
|
+
|
|
76
|
+
<!--
|
|
77
|
+
## Contributing
|
|
78
|
+
|
|
79
|
+
## Citing us
|
|
80
|
+
|
|
81
|
+
-->
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
careamics/__init__.py,sha256=loM0NCye76AI06vlOtB0sb0B_lqza4xbV5wylrhebzI,383
|
|
2
|
+
careamics/engine.py,sha256=EAK_EtJwGrCNUGoEPPEdFit9tpnMQILhrvg-q0LMqQU,34132
|
|
3
|
+
careamics/py.typed,sha256=esB4cHc6c07uVkGtqf8at7ttEnprwRxwk8obY8Qumq4,187
|
|
4
|
+
careamics/bioimage/__init__.py,sha256=hXD6_jCPkqJHOBjbsmYmGiH4_kM9_ol5KtX0ECK3rgQ,334
|
|
5
|
+
careamics/bioimage/io.py,sha256=Z4lqUyX9nic1pRmLIS2ulxoOTPPf_XaVHOfq38CUdAM,5533
|
|
6
|
+
careamics/bioimage/rdf.py,sha256=CvVMAZqQGS2Ga-Rm0V1AxuhUTeMGOunEI_HlnD6cxiw,3003
|
|
7
|
+
careamics/bioimage/docs/Noise2Void.md,sha256=tY66itOlXuVso4tHBM7zfPocjxNuQ4rya6DY7qgs_ro,271
|
|
8
|
+
careamics/bioimage/docs/__init__.py,sha256=pbN_tkgjycF2Ps1PvrMKzVX7i210LbN6qxmE6lm9yVg,63
|
|
9
|
+
careamics/config/__init__.py,sha256=NiHGEY0EPcyEPXJs5zPFLQ8LpJqcIN51L51AlzeBzWI,252
|
|
10
|
+
careamics/config/algorithm.py,sha256=cd4G2O3ih4sLmqU4BAdwHE1UJcjfs6GC9sgGQRsVyL0,6318
|
|
11
|
+
careamics/config/config.py,sha256=TYeTQT9fzvSqzimLRSjFFAuFivzi192lZqFKgnp-Y6g,8291
|
|
12
|
+
careamics/config/config_filter.py,sha256=nUPdZvvN8hb8P8rc-S938MnOL46DRK1RkOs-3KpXAh8,1082
|
|
13
|
+
careamics/config/data.py,sha256=8HIHHoEwLaapX9b1UD39vBJ5EoPUFGxmGqoTXXW3ggA,5027
|
|
14
|
+
careamics/config/torch_optim.py,sha256=YyicWpULiHY1jVB_MKi7HHqV5DMjvhmGOSS1tfJ3mm8,3096
|
|
15
|
+
careamics/config/training.py,sha256=E21Pp8fX_NVffeemPRA_twyzEpgtg2ak1ffwx-SeTgc,15451
|
|
16
|
+
careamics/dataset/__init__.py,sha256=LomFfq1GKNkTXke2Q2t3hJ8sqwfUd1DKX63svU4eL2o,22
|
|
17
|
+
careamics/dataset/dataset_utils.py,sha256=oo2yfeTgVONTlv4R1eey0RhsoJqT4VkEQgRaReJHzeE,2822
|
|
18
|
+
careamics/dataset/extraction_strategy.py,sha256=rzoggAHhXlq3h66X5C1aYG-AKG7ik-2Ifr-ESWWd1eI,485
|
|
19
|
+
careamics/dataset/in_memory_dataset.py,sha256=-2FPfj4oNNqO4HSpDstpjzgLvBJ2wby9RCHOy-7-Rew,6905
|
|
20
|
+
careamics/dataset/patching.py,sha256=vVgZ4_cxYTn4ycqjYdy3XapSJKCpfGzTR8YnndXtfD4,15344
|
|
21
|
+
careamics/dataset/prepare_dataset.py,sha256=-Ln9vOYNJReD1-U9kU-0hWtscWxKFc19ZrSwGTZH-mQ,5135
|
|
22
|
+
careamics/dataset/tiff_dataset.py,sha256=bMdovjRC_CIlGdYPG73CWSR7R9HBSg2jLl2p4TD2WTU,7664
|
|
23
|
+
careamics/losses/__init__.py,sha256=U8d0ohvezpFiUF7cBvr8Mb0tAhzZracw5i4GN-5ErOo,94
|
|
24
|
+
careamics/losses/loss_factory.py,sha256=SAkO8rv3xlQrtd21svXYLihLLK_SZfq1r86TTERAgkM,774
|
|
25
|
+
careamics/losses/losses.py,sha256=HElIXbgsP1ujsvQhebl2n3KFKERIaG64K-bolI9CGDk,751
|
|
26
|
+
careamics/manipulation/__init__.py,sha256=eJ5FrR0683tkEpfjVehtPXrGdrxrboOjE92gaMt54MU,119
|
|
27
|
+
careamics/manipulation/pixel_manipulation.py,sha256=XeJQwHhPDjQhhLke2t_hQh4Arf9dC2wd3qxgGdG2rB4,5056
|
|
28
|
+
careamics/models/__init__.py,sha256=zZE6_dg4Xv6eZZO0b9N1x-xGUyoziSpL2gOgeXRcp14,110
|
|
29
|
+
careamics/models/layers.py,sha256=4xrqr6VYFKM3Eto_ll5P_h_IXzEtHOO7GES7T95cIVo,4700
|
|
30
|
+
careamics/models/model_factory.py,sha256=d3LyDt28CAhDGcLKEFDCWi4Uvb3rIsOfRaWfP1a71-Q,7892
|
|
31
|
+
careamics/models/unet.py,sha256=Xon6x717SxhutOKzSsh4dCnSLesq5GrIQL4UXJ66CTY,10053
|
|
32
|
+
careamics/prediction/__init__.py,sha256=zIFx-zPhpreGM5hcV5R3rxTdfWw3wnXEMg2fbYqQNfw,183
|
|
33
|
+
careamics/prediction/prediction_utils.py,sha256=CcSSUWw9f9xIXh5Y6QHBQC-GGaIWv_fc913_AN1wpr0,2933
|
|
34
|
+
careamics/utils/__init__.py,sha256=wFqhdFsdE39x1ToFvH4iN8qAb0sMN-u4O74VWulBsJA,419
|
|
35
|
+
careamics/utils/ascii_logo.txt,sha256=lWwzJbuZLEpKw8R8LU1-KEwzYWqW9G_8IZLb7z8kYO0,942
|
|
36
|
+
careamics/utils/augment.py,sha256=NltOlCgUQ-kFx5M8uUrJz7JfINDxpS-Nzx9UQCH89M8,1793
|
|
37
|
+
careamics/utils/context.py,sha256=4xMOMQGkfX-Sookb1BobRVBh2v8t2y4linOluHKpdec,956
|
|
38
|
+
careamics/utils/logging.py,sha256=VP6QK4GqVGZiVCOHcFwrfOY6qrvMvqP6_Wj2sZpbvfc,10321
|
|
39
|
+
careamics/utils/metrics.py,sha256=X5umq3mKt1J5u75imlFMJwvwkwHErAcIQfAk0bfQdrA,3484
|
|
40
|
+
careamics/utils/normalization.py,sha256=8OHnv2dsuTcNBbjmYf1zjODru8Zm7oIxHZvshPJnR6g,1129
|
|
41
|
+
careamics/utils/torch_utils.py,sha256=vJh9AwkHvYMWMLmICHaZwXay6CJN5rg3RnuNxZG-WxY,2348
|
|
42
|
+
careamics/utils/validators.py,sha256=eiAmsJs04rfDJq_iJ7WaBbeAYCuMXEd0nnEcHdGAViQ,4965
|
|
43
|
+
careamics/utils/wandb.py,sha256=2h8kM99JFDsPo9Hup_Q-3fglc2QrFN-8ZGiyjZ2BZU8,3095
|
|
44
|
+
careamics-0.1.0rc2.dist-info/METADATA,sha256=fs7yIZ89pIuqh-Ejca_liuT_Xlsn89qX0XZrqZtQqec,3129
|
|
45
|
+
careamics-0.1.0rc2.dist-info/WHEEL,sha256=mRYSEL3Ih6g5a_CVMIcwiF__0Ae4_gLYh01YFNwiq1k,87
|
|
46
|
+
careamics-0.1.0rc2.dist-info/licenses/LICENSE,sha256=6zdNW-k_xHRKYWUf9tDI_ZplUciFHyj0g16DYuZ2udw,1509
|
|
47
|
+
careamics-0.1.0rc2.dist-info/RECORD,,
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: careamics
|
|
3
|
-
Version: 0.0.1
|
|
4
|
-
Summary: CAREamics
|
|
5
|
-
Project-URL: homepage, https://careamics.github.io/
|
|
6
|
-
Project-URL: repository, https://github.com/CAREamics/careamics
|
|
7
|
-
Author-email: Igor Zubarev <igor.zubarev@fht.org>, Joran Deschamps <joran.deschamps@fht.org>
|
|
8
|
-
License: BSD-3-Clause
|
|
9
|
-
License-File: LICENSE
|
|
10
|
-
Classifier: Development Status :: 3 - Alpha
|
|
11
|
-
Classifier: Programming Language :: Python :: 3
|
|
12
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
14
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
-
Requires-Python: >=3.8
|
|
17
|
-
Provides-Extra: dev
|
|
18
|
-
Requires-Dist: black; extra == 'dev'
|
|
19
|
-
Requires-Dist: ipython; extra == 'dev'
|
|
20
|
-
Requires-Dist: mypy; extra == 'dev'
|
|
21
|
-
Requires-Dist: pdbpp; extra == 'dev'
|
|
22
|
-
Requires-Dist: rich; extra == 'dev'
|
|
23
|
-
Requires-Dist: ruff; extra == 'dev'
|
|
24
|
-
Provides-Extra: test
|
|
25
|
-
Requires-Dist: pytest; extra == 'test'
|
|
26
|
-
Requires-Dist: pytest-cov; extra == 'test'
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
|
|
29
|
-
<p align="center">
|
|
30
|
-
<a href="https://careamics.github.io/">
|
|
31
|
-
<img src="https://github.com/CAREamics/.github/blob/main/profile/images/banner_careamics.png">
|
|
32
|
-
</a>
|
|
33
|
-
</p>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[](https://github.com/CAREamics/careamics/raw/main/LICENSE)
|
|
37
|
-
[](https://pypi.org/project/careamics)
|
|
38
|
-
[](https://python.org)
|
|
39
|
-
[](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
|
|
40
|
-
[](https://codecov.io/gh/CAREamics/careamics)
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Stay tuned for DL goodies with CAREamics!
|
|
44
|
-
|
|
45
|
-
Currently, this version is a place-holder, next version will contain the
|
|
46
|
-
first usable algorithms, as well as examples.
|
careamics-0.0.1.dist-info/RECORD
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
careamics/__init__.py,sha256=ogKe__nnaRWQklzZZAT7F9-z3D8eWZzG5fBpaivO51A,184
|
|
2
|
-
careamics/py.typed,sha256=esB4cHc6c07uVkGtqf8at7ttEnprwRxwk8obY8Qumq4,187
|
|
3
|
-
careamics-0.0.1.dist-info/METADATA,sha256=-9ypzXlipRX_PCkpcMSs873tMskRtHJJFGTuFaZpl08,1976
|
|
4
|
-
careamics-0.0.1.dist-info/WHEEL,sha256=y1bSCq4r5i4nMmpXeUJMqs3ipKvkZObrIXSvJHm1qCI,87
|
|
5
|
-
careamics-0.0.1.dist-info/licenses/LICENSE,sha256=Le7j5j9jk5n16Nu8uRUB8tD-mZ5Dn4iylCbngQxV9gw,1494
|
|
6
|
-
careamics-0.0.1.dist-info/RECORD,,
|