careamics 0.1.0rc5__py3-none-any.whl → 0.1.0rc7__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/callbacks/hyperparameters_callback.py +10 -3
- careamics/callbacks/progress_bar_callback.py +37 -4
- careamics/careamist.py +164 -231
- careamics/config/algorithm_model.py +5 -18
- careamics/config/architectures/architecture_model.py +7 -0
- careamics/config/architectures/custom_model.py +11 -4
- careamics/config/architectures/register_model.py +3 -1
- careamics/config/architectures/unet_model.py +2 -0
- careamics/config/architectures/vae_model.py +2 -0
- careamics/config/callback_model.py +3 -15
- careamics/config/configuration_example.py +4 -5
- careamics/config/configuration_factory.py +27 -41
- careamics/config/configuration_model.py +11 -11
- careamics/config/data_model.py +89 -63
- careamics/config/inference_model.py +28 -81
- careamics/config/optimizer_models.py +11 -11
- careamics/config/support/__init__.py +0 -2
- careamics/config/support/supported_activations.py +2 -0
- careamics/config/support/supported_algorithms.py +3 -1
- careamics/config/support/supported_architectures.py +2 -0
- careamics/config/support/supported_data.py +2 -0
- careamics/config/support/supported_loggers.py +2 -0
- careamics/config/support/supported_losses.py +2 -0
- careamics/config/support/supported_optimizers.py +2 -0
- careamics/config/support/supported_pixel_manipulations.py +3 -3
- careamics/config/support/supported_struct_axis.py +2 -0
- careamics/config/support/supported_transforms.py +4 -16
- careamics/config/tile_information.py +28 -58
- careamics/config/transformations/__init__.py +3 -2
- careamics/config/transformations/normalize_model.py +32 -4
- careamics/config/transformations/xy_flip_model.py +43 -0
- careamics/config/transformations/xy_random_rotate90_model.py +11 -3
- careamics/config/validators/validator_utils.py +1 -1
- careamics/conftest.py +12 -0
- careamics/dataset/__init__.py +12 -1
- careamics/dataset/dataset_utils/__init__.py +8 -1
- careamics/dataset/dataset_utils/dataset_utils.py +4 -4
- careamics/dataset/dataset_utils/file_utils.py +4 -3
- careamics/dataset/dataset_utils/iterate_over_files.py +83 -0
- careamics/dataset/dataset_utils/read_tiff.py +6 -11
- careamics/dataset/dataset_utils/read_utils.py +2 -0
- careamics/dataset/dataset_utils/read_zarr.py +11 -7
- careamics/dataset/dataset_utils/running_stats.py +186 -0
- careamics/dataset/in_memory_dataset.py +88 -154
- careamics/dataset/in_memory_pred_dataset.py +88 -0
- careamics/dataset/in_memory_tiled_pred_dataset.py +129 -0
- careamics/dataset/iterable_dataset.py +121 -191
- careamics/dataset/iterable_pred_dataset.py +121 -0
- careamics/dataset/iterable_tiled_pred_dataset.py +139 -0
- careamics/dataset/patching/patching.py +109 -39
- careamics/dataset/patching/random_patching.py +17 -6
- careamics/dataset/patching/sequential_patching.py +14 -8
- careamics/dataset/patching/validate_patch_dimension.py +7 -3
- careamics/dataset/tiling/__init__.py +10 -0
- careamics/dataset/tiling/collate_tiles.py +33 -0
- careamics/dataset/{patching → tiling}/tiled_patching.py +7 -5
- careamics/dataset/zarr_dataset.py +2 -0
- careamics/lightning_datamodule.py +46 -25
- careamics/lightning_module.py +19 -9
- careamics/lightning_prediction_datamodule.py +54 -84
- careamics/losses/__init__.py +2 -3
- careamics/losses/loss_factory.py +1 -1
- careamics/losses/losses.py +11 -7
- careamics/lvae_training/__init__.py +0 -0
- careamics/lvae_training/data_modules.py +1220 -0
- careamics/lvae_training/data_utils.py +618 -0
- careamics/lvae_training/eval_utils.py +905 -0
- careamics/lvae_training/get_config.py +84 -0
- careamics/lvae_training/lightning_module.py +701 -0
- careamics/lvae_training/metrics.py +214 -0
- careamics/lvae_training/train_lvae.py +339 -0
- careamics/lvae_training/train_utils.py +121 -0
- careamics/model_io/bioimage/model_description.py +40 -32
- careamics/model_io/bmz_io.py +3 -3
- careamics/model_io/model_io_utils.py +5 -2
- careamics/models/activation.py +2 -0
- careamics/models/layers.py +121 -25
- careamics/models/lvae/__init__.py +0 -0
- careamics/models/lvae/layers.py +1998 -0
- careamics/models/lvae/likelihoods.py +312 -0
- careamics/models/lvae/lvae.py +985 -0
- careamics/models/lvae/noise_models.py +409 -0
- careamics/models/lvae/utils.py +395 -0
- careamics/models/model_factory.py +1 -1
- careamics/models/unet.py +35 -14
- careamics/prediction_utils/__init__.py +12 -0
- careamics/prediction_utils/create_pred_datamodule.py +185 -0
- careamics/prediction_utils/prediction_outputs.py +165 -0
- careamics/prediction_utils/stitch_prediction.py +100 -0
- careamics/transforms/__init__.py +2 -2
- careamics/transforms/compose.py +33 -7
- careamics/transforms/n2v_manipulate.py +52 -14
- careamics/transforms/normalize.py +171 -48
- careamics/transforms/pixel_manipulation.py +35 -11
- careamics/transforms/struct_mask_parameters.py +3 -1
- careamics/transforms/transform.py +10 -19
- careamics/transforms/tta.py +43 -29
- careamics/transforms/xy_flip.py +123 -0
- careamics/transforms/xy_random_rotate90.py +38 -5
- careamics/utils/base_enum.py +28 -0
- careamics/utils/path_utils.py +2 -0
- careamics/utils/ram.py +4 -2
- careamics/utils/receptive_field.py +93 -87
- {careamics-0.1.0rc5.dist-info → careamics-0.1.0rc7.dist-info}/METADATA +8 -6
- careamics-0.1.0rc7.dist-info/RECORD +130 -0
- {careamics-0.1.0rc5.dist-info → careamics-0.1.0rc7.dist-info}/WHEEL +1 -1
- careamics/config/noise_models.py +0 -162
- careamics/config/support/supported_extraction_strategies.py +0 -25
- careamics/config/transformations/nd_flip_model.py +0 -27
- careamics/lightning_prediction_loop.py +0 -116
- careamics/losses/noise_model_factory.py +0 -40
- careamics/losses/noise_models.py +0 -524
- careamics/prediction/__init__.py +0 -7
- careamics/prediction/stitch_prediction.py +0 -74
- careamics/transforms/nd_flip.py +0 -67
- careamics/utils/running_stats.py +0 -43
- careamics-0.1.0rc5.dist-info/RECORD +0 -111
- {careamics-0.1.0rc5.dist-info → careamics-0.1.0rc7.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"""XY flip transform."""
|
|
2
|
+
|
|
3
|
+
from typing import Optional, Tuple
|
|
4
|
+
|
|
5
|
+
import numpy as np
|
|
6
|
+
|
|
7
|
+
from careamics.transforms.transform import Transform
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class XYFlip(Transform):
|
|
11
|
+
"""Flip image along X and Y axis, one at a time.
|
|
12
|
+
|
|
13
|
+
This transform randomly flips one of the last two axes.
|
|
14
|
+
|
|
15
|
+
This transform expects C(Z)YX dimensions.
|
|
16
|
+
|
|
17
|
+
Attributes
|
|
18
|
+
----------
|
|
19
|
+
axis_indices : List[int]
|
|
20
|
+
Indices of the axes that can be flipped.
|
|
21
|
+
rng : np.random.Generator
|
|
22
|
+
Random number generator.
|
|
23
|
+
p : float
|
|
24
|
+
Probability of applying the transform.
|
|
25
|
+
seed : Optional[int]
|
|
26
|
+
Random seed.
|
|
27
|
+
|
|
28
|
+
Parameters
|
|
29
|
+
----------
|
|
30
|
+
flip_x : bool, optional
|
|
31
|
+
Whether to flip along the X axis, by default True.
|
|
32
|
+
flip_y : bool, optional
|
|
33
|
+
Whether to flip along the Y axis, by default True.
|
|
34
|
+
p : float, optional
|
|
35
|
+
Probability of applying the transform, by default 0.5.
|
|
36
|
+
seed : Optional[int], optional
|
|
37
|
+
Random seed, by default None.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
def __init__(
|
|
41
|
+
self,
|
|
42
|
+
flip_x: bool = True,
|
|
43
|
+
flip_y: bool = True,
|
|
44
|
+
p: float = 0.5,
|
|
45
|
+
seed: Optional[int] = None,
|
|
46
|
+
) -> None:
|
|
47
|
+
"""Constructor.
|
|
48
|
+
|
|
49
|
+
Parameters
|
|
50
|
+
----------
|
|
51
|
+
flip_x : bool, optional
|
|
52
|
+
Whether to flip along the X axis, by default True.
|
|
53
|
+
flip_y : bool, optional
|
|
54
|
+
Whether to flip along the Y axis, by default True.
|
|
55
|
+
p : float
|
|
56
|
+
Probability of applying the transform, by default 0.5.
|
|
57
|
+
seed : Optional[int], optional
|
|
58
|
+
Random seed, by default None.
|
|
59
|
+
"""
|
|
60
|
+
if p < 0 or p > 1:
|
|
61
|
+
raise ValueError("Probability must be in [0, 1].")
|
|
62
|
+
|
|
63
|
+
if not flip_x and not flip_y:
|
|
64
|
+
raise ValueError("At least one axis must be flippable.")
|
|
65
|
+
|
|
66
|
+
# probability to apply the transform
|
|
67
|
+
self.p = p
|
|
68
|
+
|
|
69
|
+
# "flippable" axes
|
|
70
|
+
self.axis_indices = []
|
|
71
|
+
|
|
72
|
+
if flip_y:
|
|
73
|
+
self.axis_indices.append(-2)
|
|
74
|
+
if flip_x:
|
|
75
|
+
self.axis_indices.append(-1)
|
|
76
|
+
|
|
77
|
+
# numpy random generator
|
|
78
|
+
self.rng = np.random.default_rng(seed=seed)
|
|
79
|
+
|
|
80
|
+
def __call__(
|
|
81
|
+
self, patch: np.ndarray, target: Optional[np.ndarray] = None
|
|
82
|
+
) -> Tuple[np.ndarray, Optional[np.ndarray]]:
|
|
83
|
+
"""Apply the transform to the source patch and the target (optional).
|
|
84
|
+
|
|
85
|
+
Parameters
|
|
86
|
+
----------
|
|
87
|
+
patch : np.ndarray
|
|
88
|
+
Patch, 2D or 3D, shape C(Z)YX.
|
|
89
|
+
target : Optional[np.ndarray], optional
|
|
90
|
+
Target for the patch, by default None.
|
|
91
|
+
|
|
92
|
+
Returns
|
|
93
|
+
-------
|
|
94
|
+
Tuple[np.ndarray, Optional[np.ndarray]]
|
|
95
|
+
Transformed patch and target.
|
|
96
|
+
"""
|
|
97
|
+
if self.rng.random() > self.p:
|
|
98
|
+
return patch, target
|
|
99
|
+
|
|
100
|
+
# choose an axis to flip
|
|
101
|
+
axis = self.rng.choice(self.axis_indices)
|
|
102
|
+
|
|
103
|
+
patch_transformed = self._apply(patch, axis)
|
|
104
|
+
target_transformed = self._apply(target, axis) if target is not None else None
|
|
105
|
+
|
|
106
|
+
return patch_transformed, target_transformed
|
|
107
|
+
|
|
108
|
+
def _apply(self, patch: np.ndarray, axis: int) -> np.ndarray:
|
|
109
|
+
"""Apply the transform to the image.
|
|
110
|
+
|
|
111
|
+
Parameters
|
|
112
|
+
----------
|
|
113
|
+
patch : np.ndarray
|
|
114
|
+
Image patch, 2D or 3D, shape C(Z)YX.
|
|
115
|
+
axis : int
|
|
116
|
+
Axis to flip.
|
|
117
|
+
|
|
118
|
+
Returns
|
|
119
|
+
-------
|
|
120
|
+
np.ndarray
|
|
121
|
+
Flipped image patch.
|
|
122
|
+
"""
|
|
123
|
+
return np.ascontiguousarray(np.flip(patch, axis=axis))
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"""Patch transform applying XY random 90 degrees rotations."""
|
|
2
|
+
|
|
1
3
|
from typing import Optional, Tuple
|
|
2
4
|
|
|
3
5
|
import numpy as np
|
|
@@ -9,16 +11,40 @@ class XYRandomRotate90(Transform):
|
|
|
9
11
|
"""Applies random 90 degree rotations to the YX axis.
|
|
10
12
|
|
|
11
13
|
This transform expects C(Z)YX dimensions.
|
|
14
|
+
|
|
15
|
+
Attributes
|
|
16
|
+
----------
|
|
17
|
+
rng : np.random.Generator
|
|
18
|
+
Random number generator.
|
|
19
|
+
p : float
|
|
20
|
+
Probability of applying the transform.
|
|
21
|
+
seed : Optional[int]
|
|
22
|
+
Random seed.
|
|
23
|
+
|
|
24
|
+
Parameters
|
|
25
|
+
----------
|
|
26
|
+
p : float
|
|
27
|
+
Probability of applying the transform, by default 0.5.
|
|
28
|
+
seed : Optional[int]
|
|
29
|
+
Random seed, by default None.
|
|
12
30
|
"""
|
|
13
31
|
|
|
14
|
-
def __init__(self, seed: Optional[int] = None):
|
|
32
|
+
def __init__(self, p: float = 0.5, seed: Optional[int] = None):
|
|
15
33
|
"""Constructor.
|
|
16
34
|
|
|
17
35
|
Parameters
|
|
18
36
|
----------
|
|
19
|
-
|
|
20
|
-
|
|
37
|
+
p : float
|
|
38
|
+
Probability of applying the transform, by default 0.5.
|
|
39
|
+
seed : Optional[int]
|
|
40
|
+
Random seed, by default None.
|
|
21
41
|
"""
|
|
42
|
+
if p < 0 or p > 1:
|
|
43
|
+
raise ValueError("Probability must be in [0, 1].")
|
|
44
|
+
|
|
45
|
+
# probability to apply the transform
|
|
46
|
+
self.p = p
|
|
47
|
+
|
|
22
48
|
# numpy random generator
|
|
23
49
|
self.rng = np.random.default_rng(seed=seed)
|
|
24
50
|
|
|
@@ -32,13 +58,16 @@ class XYRandomRotate90(Transform):
|
|
|
32
58
|
patch : np.ndarray
|
|
33
59
|
Patch, 2D or 3D, shape C(Z)YX.
|
|
34
60
|
target : Optional[np.ndarray], optional
|
|
35
|
-
Target for the patch, by default None
|
|
61
|
+
Target for the patch, by default None.
|
|
36
62
|
|
|
37
63
|
Returns
|
|
38
64
|
-------
|
|
39
65
|
Tuple[np.ndarray, Optional[np.ndarray]]
|
|
40
66
|
Transformed patch and target.
|
|
41
67
|
"""
|
|
68
|
+
if self.rng.random() > self.p:
|
|
69
|
+
return patch, target
|
|
70
|
+
|
|
42
71
|
# number of rotations
|
|
43
72
|
n_rot = self.rng.integers(1, 4)
|
|
44
73
|
|
|
@@ -63,6 +92,10 @@ class XYRandomRotate90(Transform):
|
|
|
63
92
|
Number of 90 degree rotations.
|
|
64
93
|
axes : Tuple[int, int]
|
|
65
94
|
Axes along which to rotate the patch.
|
|
95
|
+
|
|
96
|
+
Returns
|
|
97
|
+
-------
|
|
98
|
+
np.ndarray
|
|
99
|
+
Transformed patch.
|
|
66
100
|
"""
|
|
67
|
-
# TODO why ascontiguousarray?
|
|
68
101
|
return np.ascontiguousarray(np.rot90(patch, k=n_rot, axes=axes))
|
careamics/utils/base_enum.py
CHANGED
|
@@ -1,9 +1,25 @@
|
|
|
1
|
+
"""A base class for Enum that allows checking if a value is in the Enum."""
|
|
2
|
+
|
|
1
3
|
from enum import Enum, EnumMeta
|
|
2
4
|
from typing import Any
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
class _ContainerEnum(EnumMeta):
|
|
8
|
+
"""Metaclass for Enum with __contains__ method."""
|
|
9
|
+
|
|
6
10
|
def __contains__(cls, item: Any) -> bool:
|
|
11
|
+
"""Check if an item is in the Enum.
|
|
12
|
+
|
|
13
|
+
Parameters
|
|
14
|
+
----------
|
|
15
|
+
item : Any
|
|
16
|
+
Item to check.
|
|
17
|
+
|
|
18
|
+
Returns
|
|
19
|
+
-------
|
|
20
|
+
bool
|
|
21
|
+
True if the item is in the Enum, False otherwise.
|
|
22
|
+
"""
|
|
7
23
|
try:
|
|
8
24
|
cls(item)
|
|
9
25
|
except ValueError:
|
|
@@ -12,6 +28,18 @@ class _ContainerEnum(EnumMeta):
|
|
|
12
28
|
|
|
13
29
|
@classmethod
|
|
14
30
|
def has_value(cls, value: Any) -> bool:
|
|
31
|
+
"""Check if a value is in the Enum.
|
|
32
|
+
|
|
33
|
+
Parameters
|
|
34
|
+
----------
|
|
35
|
+
value : Any
|
|
36
|
+
Value to check.
|
|
37
|
+
|
|
38
|
+
Returns
|
|
39
|
+
-------
|
|
40
|
+
bool
|
|
41
|
+
True if the value is in the Enum, False otherwise.
|
|
42
|
+
"""
|
|
15
43
|
return value in cls._value2member_map_
|
|
16
44
|
|
|
17
45
|
|
careamics/utils/path_utils.py
CHANGED
careamics/utils/ram.py
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
|
+
"""Utility function to get RAM size."""
|
|
2
|
+
|
|
1
3
|
import psutil
|
|
2
4
|
|
|
3
5
|
|
|
4
6
|
def get_ram_size() -> int:
|
|
5
7
|
"""
|
|
6
|
-
Get RAM size in
|
|
8
|
+
Get RAM size in mbytes.
|
|
7
9
|
|
|
8
10
|
Returns
|
|
9
11
|
-------
|
|
10
12
|
int
|
|
11
13
|
RAM size in mbytes.
|
|
12
14
|
"""
|
|
13
|
-
return psutil.virtual_memory().
|
|
15
|
+
return psutil.virtual_memory().available / 1024**2
|
|
@@ -1,102 +1,108 @@
|
|
|
1
1
|
"""Receptive field calculation for computing the tile overlap."""
|
|
2
2
|
|
|
3
|
+
# TODO better docstring and function names
|
|
3
4
|
# Adapted from: https://github.com/frgfm/torch-scan
|
|
4
5
|
|
|
5
|
-
import math
|
|
6
|
-
import warnings
|
|
7
|
-
from typing import Tuple, Union
|
|
6
|
+
# import math
|
|
7
|
+
# import warnings
|
|
8
|
+
# from typing import Tuple, Union
|
|
8
9
|
|
|
9
|
-
from torch import Tensor, nn
|
|
10
|
-
from torch.nn import Module
|
|
11
|
-
from torch.nn.modules.batchnorm import _BatchNorm
|
|
12
|
-
from torch.nn.modules.conv import _ConvNd, _ConvTransposeNd
|
|
13
|
-
from torch.nn.modules.pooling import (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
)
|
|
10
|
+
# from torch import Tensor, nn
|
|
11
|
+
# from torch.nn import Module
|
|
12
|
+
# from torch.nn.modules.batchnorm import _BatchNorm
|
|
13
|
+
# from torch.nn.modules.conv import _ConvNd, _ConvTransposeNd
|
|
14
|
+
# from torch.nn.modules.pooling import (
|
|
15
|
+
# _AdaptiveAvgPoolNd,
|
|
16
|
+
# _AdaptiveMaxPoolNd,
|
|
17
|
+
# _AvgPoolNd,
|
|
18
|
+
# _MaxPoolNd,
|
|
19
|
+
# )
|
|
19
20
|
|
|
20
21
|
|
|
21
|
-
def module_rf(module: Module, inp: Tensor, out: Tensor) -> Tuple[float, float, float]:
|
|
22
|
-
|
|
22
|
+
# def module_rf(module: Module, inp: Tensor, out: Tensor) -> Tuple[float, float, float]:
|
|
23
|
+
# """Estimate the spatial receptive field of the module.
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"""
|
|
33
|
-
if isinstance(
|
|
34
|
-
module,
|
|
35
|
-
(
|
|
36
|
-
nn.Identity,
|
|
37
|
-
nn.Flatten,
|
|
38
|
-
nn.ReLU,
|
|
39
|
-
nn.ELU,
|
|
40
|
-
nn.LeakyReLU,
|
|
41
|
-
nn.ReLU6,
|
|
42
|
-
nn.Tanh,
|
|
43
|
-
nn.Sigmoid,
|
|
44
|
-
_BatchNorm,
|
|
45
|
-
nn.Dropout,
|
|
46
|
-
nn.Linear,
|
|
47
|
-
),
|
|
48
|
-
):
|
|
49
|
-
return 1.0, 1.0, 0.0
|
|
50
|
-
elif isinstance(module, _ConvTransposeNd):
|
|
51
|
-
return rf_convtransposend(module, inp, out)
|
|
52
|
-
elif isinstance(module, (_ConvNd, _MaxPoolNd, _AvgPoolNd)):
|
|
53
|
-
return rf_aggregnd(module, inp, out)
|
|
54
|
-
elif isinstance(module, (_AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd)):
|
|
55
|
-
return rf_adaptive_poolnd(module, inp, out)
|
|
56
|
-
else:
|
|
57
|
-
warnings.warn(
|
|
58
|
-
f"Module type not supported: {module.__class__.__name__}", stacklevel=1
|
|
59
|
-
)
|
|
60
|
-
return 1.0, 1.0, 0.0
|
|
25
|
+
# Parameters
|
|
26
|
+
# ----------
|
|
27
|
+
# module : Module
|
|
28
|
+
# Module to estimate the receptive field.
|
|
29
|
+
# inp : Tensor
|
|
30
|
+
# Input tensor.
|
|
31
|
+
# out : Tensor
|
|
32
|
+
# Output tensor.
|
|
61
33
|
|
|
34
|
+
# Returns
|
|
35
|
+
# -------
|
|
36
|
+
# Tuple[float, float, float]
|
|
37
|
+
# Receptive field, effective stride and padding.
|
|
38
|
+
# """
|
|
39
|
+
# if isinstance(
|
|
40
|
+
# module,
|
|
41
|
+
# (
|
|
42
|
+
# nn.Identity,
|
|
43
|
+
# nn.Flatten,
|
|
44
|
+
# nn.ReLU,
|
|
45
|
+
# nn.ELU,
|
|
46
|
+
# nn.LeakyReLU,
|
|
47
|
+
# nn.ReLU6,
|
|
48
|
+
# nn.Tanh,
|
|
49
|
+
# nn.Sigmoid,
|
|
50
|
+
# _BatchNorm,
|
|
51
|
+
# nn.Dropout,
|
|
52
|
+
# nn.Linear,
|
|
53
|
+
# ),
|
|
54
|
+
# ):
|
|
55
|
+
# return 1.0, 1.0, 0.0
|
|
56
|
+
# elif isinstance(module, _ConvTransposeNd):
|
|
57
|
+
# return rf_convtransposend(module, inp, out)
|
|
58
|
+
# elif isinstance(module, (_ConvNd, _MaxPoolNd, _AvgPoolNd)):
|
|
59
|
+
# return rf_aggregnd(module, inp, out)
|
|
60
|
+
# elif isinstance(module, (_AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd)):
|
|
61
|
+
# return rf_adaptive_poolnd(module, inp, out)
|
|
62
|
+
# else:
|
|
63
|
+
# warnings.warn(
|
|
64
|
+
# f"Module type not supported: {module.__class__.__name__}", stacklevel=1
|
|
65
|
+
# )
|
|
66
|
+
# return 1.0, 1.0, 0.0
|
|
62
67
|
|
|
63
|
-
def rf_convtransposend(
|
|
64
|
-
module: _ConvTransposeNd, _: Tensor, __: Tensor
|
|
65
|
-
) -> Tuple[float, float, float]:
|
|
66
|
-
k = (
|
|
67
|
-
module.kernel_size[0]
|
|
68
|
-
if isinstance(module.kernel_size, tuple)
|
|
69
|
-
else module.kernel_size
|
|
70
|
-
)
|
|
71
|
-
s = module.stride[0] if isinstance(module.stride, tuple) else module.stride
|
|
72
|
-
return -k, 1.0 / s, 0.0
|
|
73
68
|
|
|
69
|
+
# def rf_convtransposend(
|
|
70
|
+
# module: _ConvTransposeNd, _: Tensor, __: Tensor
|
|
71
|
+
# ) -> Tuple[float, float, float]:
|
|
72
|
+
# k = (
|
|
73
|
+
# module.kernel_size[0]
|
|
74
|
+
# if isinstance(module.kernel_size, tuple)
|
|
75
|
+
# else module.kernel_size
|
|
76
|
+
# )
|
|
77
|
+
# s = module.stride[0] if isinstance(module.stride, tuple) else module.stride
|
|
78
|
+
# return -k, 1.0 / s, 0.0
|
|
74
79
|
|
|
75
|
-
def rf_aggregnd(
|
|
76
|
-
module: Union[_ConvNd, _MaxPoolNd, _AvgPoolNd], _: Tensor, __: Tensor
|
|
77
|
-
) -> Tuple[float, float, float]:
|
|
78
|
-
k = (
|
|
79
|
-
module.kernel_size[0]
|
|
80
|
-
if isinstance(module.kernel_size, tuple)
|
|
81
|
-
else module.kernel_size
|
|
82
|
-
)
|
|
83
|
-
if hasattr(module, "dilation"):
|
|
84
|
-
d = (
|
|
85
|
-
module.dilation[0]
|
|
86
|
-
if isinstance(module.dilation, tuple)
|
|
87
|
-
else module.dilation
|
|
88
|
-
)
|
|
89
|
-
k = d * (k - 1) + 1
|
|
90
|
-
s = module.stride[0] if isinstance(module.stride, tuple) else module.stride
|
|
91
|
-
p = module.padding[0] if isinstance(module.padding, tuple) else module.padding
|
|
92
|
-
return k, s, p # type: ignore[return-value]
|
|
93
80
|
|
|
81
|
+
# def rf_aggregnd(
|
|
82
|
+
# module: Union[_ConvNd, _MaxPoolNd, _AvgPoolNd], _: Tensor, __: Tensor
|
|
83
|
+
# ) -> Tuple[float, float, float]:
|
|
84
|
+
# k = (
|
|
85
|
+
# module.kernel_size[0]
|
|
86
|
+
# if isinstance(module.kernel_size, tuple)
|
|
87
|
+
# else module.kernel_size
|
|
88
|
+
# )
|
|
89
|
+
# if hasattr(module, "dilation"):
|
|
90
|
+
# d = (
|
|
91
|
+
# module.dilation[0]
|
|
92
|
+
# if isinstance(module.dilation, tuple)
|
|
93
|
+
# else module.dilation
|
|
94
|
+
# )
|
|
95
|
+
# k = d * (k - 1) + 1
|
|
96
|
+
# s = module.stride[0] if isinstance(module.stride, tuple) else module.stride
|
|
97
|
+
# p = module.padding[0] if isinstance(module.padding, tuple) else module.padding
|
|
98
|
+
# return k, s, p # type: ignore[return-value]
|
|
94
99
|
|
|
95
|
-
def rf_adaptive_poolnd(
|
|
96
|
-
_: Union[_AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd], inp: Tensor, out: Tensor
|
|
97
|
-
) -> Tuple[int, int, float]:
|
|
98
|
-
stride = math.ceil(inp.shape[-1] / out.shape[-1])
|
|
99
|
-
kernel_size = stride
|
|
100
|
-
padding = (inp.shape[-1] - kernel_size * stride) / 2
|
|
101
100
|
|
|
102
|
-
|
|
101
|
+
# def rf_adaptive_poolnd(
|
|
102
|
+
# _: Union[_AdaptiveMaxPoolNd, _AdaptiveAvgPoolNd], inp: Tensor, out: Tensor
|
|
103
|
+
# ) -> Tuple[int, int, float]:
|
|
104
|
+
# stride = math.ceil(inp.shape[-1] / out.shape[-1])
|
|
105
|
+
# kernel_size = stride
|
|
106
|
+
# padding = (inp.shape[-1] - kernel_size * stride) / 2
|
|
107
|
+
|
|
108
|
+
# return kernel_size, stride, padding
|
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: careamics
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0rc7
|
|
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
|
|
7
|
-
Author-email:
|
|
7
|
+
Author-email: Melisande Croft <melisande.croft@fht.org>, Joran Deschamps <joran.deschamps@fht.org>, Igor Zubarev <igor.zubarev@fht.org>
|
|
8
8
|
License: BSD-3-Clause
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
Classifier: Development Status :: 3 - Alpha
|
|
11
11
|
Classifier: License :: OSI Approved :: BSD License
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.9
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
16
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Typing :: Typed
|
|
18
|
-
Requires-Python: >=3.
|
|
18
|
+
Requires-Python: >=3.9
|
|
19
19
|
Requires-Dist: bioimageio-core>=0.6.0
|
|
20
|
+
Requires-Dist: numpy<2.0.0
|
|
20
21
|
Requires-Dist: psutil
|
|
21
22
|
Requires-Dist: pydantic>=2.5
|
|
22
23
|
Requires-Dist: pytorch-lightning>=2.2.0
|
|
23
24
|
Requires-Dist: pyyaml
|
|
24
|
-
Requires-Dist: scikit-image
|
|
25
|
+
Requires-Dist: scikit-image<=0.23.2
|
|
25
26
|
Requires-Dist: tifffile
|
|
26
27
|
Requires-Dist: torch>=2.0.0
|
|
27
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: torchvision
|
|
29
|
+
Requires-Dist: zarr<3.0.0
|
|
28
30
|
Provides-Extra: dev
|
|
29
31
|
Requires-Dist: pre-commit; extra == 'dev'
|
|
30
32
|
Requires-Dist: pytest; extra == 'dev'
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
careamics/__init__.py,sha256=DkMGt4t9ua0gCgvZFEtb6eydvoxG976T0KUro8KnDNA,760
|
|
2
|
+
careamics/careamist.py,sha256=BtCJWXD4zlKAo05acHj-k-r7wdBcH9eHMQQ6x0wERjo,25911
|
|
3
|
+
careamics/conftest.py,sha256=Od4WcaaP0UP-XUMrFr_oo4e6c2hi_RvNbuaRTopwlmI,911
|
|
4
|
+
careamics/lightning_datamodule.py,sha256=NoMJIaJU0BizBNTSC-dzR1mWED1urHMXdH6hIFi-QfE,32536
|
|
5
|
+
careamics/lightning_module.py,sha256=T1G_QmBAMHfZyynD6nywT9F6bFdjDDdXqJQnjqiODek,10483
|
|
6
|
+
careamics/lightning_prediction_datamodule.py,sha256=cZuiwImD-e4Fuy493PWfwhR0fWm_uqor8itjgsQCWos,14595
|
|
7
|
+
careamics/py.typed,sha256=esB4cHc6c07uVkGtqf8at7ttEnprwRxwk8obY8Qumq4,187
|
|
8
|
+
careamics/callbacks/__init__.py,sha256=spxJlDByD-6QtMl9vcIty8Wb0tyHaSTKTItozHenI44,204
|
|
9
|
+
careamics/callbacks/hyperparameters_callback.py,sha256=ODJpwwdgc1-Py8yEUpXLar8_IOAcfR7lF3--6LfSiGc,1496
|
|
10
|
+
careamics/callbacks/progress_bar_callback.py,sha256=8HvNSWZldixd6pjz0dLDo0apIbzTovv5smKmZ6tZQ8U,2444
|
|
11
|
+
careamics/config/__init__.py,sha256=SP1oJKhK3VDN9ABwnpfR3H02qRprzymjRfNYeC7kHEo,1019
|
|
12
|
+
careamics/config/algorithm_model.py,sha256=Lu7eYyLql5bEeTDLnJ4ms-kqSQ-EufNbt9SNa91K_Ec,5109
|
|
13
|
+
careamics/config/callback_model.py,sha256=CcamVhgRsVdskCe_9EtyWi1YbrNX5vKEplc97AYz1h8,3118
|
|
14
|
+
careamics/config/configuration_example.py,sha256=fhV02Y3wm9anwWFx4Yi5y-OoP31wEYBJYggbyGONQuk,2486
|
|
15
|
+
careamics/config/configuration_factory.py,sha256=viTuBK8bUD266OG9w7B9XZDXlH39D-FaxMq6mai3k6E,21323
|
|
16
|
+
careamics/config/configuration_model.py,sha256=mmHNnWDK7BklCwd3JV6EcHU57EJ6JKBK0mK11G6Cvxo,18472
|
|
17
|
+
careamics/config/data_model.py,sha256=JANDySUFo2iU74RYPhHgjQjfzn1x2mUZlFJFLiW42TA,14257
|
|
18
|
+
careamics/config/inference_model.py,sha256=3n3jy922lTD9NhnSNA876Rmrr2MavFk2pmOE967itLQ,6447
|
|
19
|
+
careamics/config/optimizer_models.py,sha256=-XVzi7CsxfcThTUjlyn4btJa6oHbFOf-q3h9qLM9t0k,5346
|
|
20
|
+
careamics/config/tile_information.py,sha256=TAqfAthPSnIqerq72qP4KlTXPqci9XE9pCVN7J3bMJ4,2246
|
|
21
|
+
careamics/config/training_model.py,sha256=oghv91J7xIdI69wpNJGmLUAwgM9l3VhMsbsOo4USqkU,1559
|
|
22
|
+
careamics/config/architectures/__init__.py,sha256=CdnViydyTdQixus3uWHBIgbgxmu9t1_ADehqpjN_57U,444
|
|
23
|
+
careamics/config/architectures/architecture_model.py,sha256=545hlbOZU9EJNGTcSpy7eXpfzCtvIm28dDJGMo36AfQ,886
|
|
24
|
+
careamics/config/architectures/custom_model.py,sha256=K2RXK2YINm3SCzTxhxzUzFbFV-FYvWQVEDQ-i5bOIoQ,4592
|
|
25
|
+
careamics/config/architectures/register_model.py,sha256=lHH0aUPmXtI3Bq_76zkhg07_Yb_nOJZkZJLCC_G-rZM,2434
|
|
26
|
+
careamics/config/architectures/unet_model.py,sha256=sQjfqTjh1kTNi369U3_94jroU6LyLlflaIe8FwdHQvo,2892
|
|
27
|
+
careamics/config/architectures/vae_model.py,sha256=Z0satmte4udManh_bxtl93ZmQlmo6JFE1NQIuZkTsQk,926
|
|
28
|
+
careamics/config/references/__init__.py,sha256=rZAQzmrciX5cNICcXaBH6sbE6N6L7_qYQUkasNy9y-c,763
|
|
29
|
+
careamics/config/references/algorithm_descriptions.py,sha256=wR3hIoeg5eiUEPbwTxMpQYLTKQyRl_5naSDbBZOZESU,3541
|
|
30
|
+
careamics/config/references/references.py,sha256=AXx08FJQxHb7SYOluCr_eQn_mbOris5dXqhKrCnhBTE,1573
|
|
31
|
+
careamics/config/support/__init__.py,sha256=pKqk76kyBraiSC1SQos-cyiQwsfOLLkLuWj6Hw60LZ4,1041
|
|
32
|
+
careamics/config/support/supported_activations.py,sha256=O27_dGDgw2P-DslKJsXGVAyS2NUQM6Ta4jeo2uTQlW0,519
|
|
33
|
+
careamics/config/support/supported_algorithms.py,sha256=GCkauFDlmb2hJwFSdoIpGmpLjPeYFHOGy2NweKdw8T4,358
|
|
34
|
+
careamics/config/support/supported_architectures.py,sha256=LLD6hyje9Q0BcvA7p2E8WW_cY5yEgMI_NAP4HBi27UU,540
|
|
35
|
+
careamics/config/support/supported_data.py,sha256=C0VcP1DkZqJ4MPn6UZcCZX8ZfVNdz0ZJk6y89fiim2I,2084
|
|
36
|
+
careamics/config/support/supported_loggers.py,sha256=ubSOkGoYabGbm_jmyc1R3eFcvcP-sHmuyiBi_d3_wLg,197
|
|
37
|
+
careamics/config/support/supported_losses.py,sha256=TPsMCuDdgb64TRyDwonnwHb1R-rkn3OzhtHimyVtrOY,540
|
|
38
|
+
careamics/config/support/supported_optimizers.py,sha256=xxbJsyohJTlHeUz2I4eRwcE3BeACs-6PH8cpX6w2wX8,1394
|
|
39
|
+
careamics/config/support/supported_pixel_manipulations.py,sha256=rFiktUlvoFU7s1NAKEMqsXOzLw5eaw9GtCKUznvq6xc,432
|
|
40
|
+
careamics/config/support/supported_struct_axis.py,sha256=alZMA5Y-BpDymLPUEd1zqVY0xMkgl9Rv1d4ujED6sco,424
|
|
41
|
+
careamics/config/support/supported_transforms.py,sha256=4uob-bnZ5aqpN5aEI67-aa7bsmVCrKxEknzf2BAZ3W4,283
|
|
42
|
+
careamics/config/transformations/__init__.py,sha256=oqwBAL2XXbPRZZ5iOzNqalX6SyJ1M-S0lkfbDGZOzyE,378
|
|
43
|
+
careamics/config/transformations/n2v_manipulate_model.py,sha256=UTyfpm1mmMvYg_HoMzXilZhJGx_muiV-lLQ4UThCFJ0,1854
|
|
44
|
+
careamics/config/transformations/normalize_model.py,sha256=1Rkk6IkF-7ytGU6HSzP-TpOi4RRWiQJ6fOd8zammXcg,1936
|
|
45
|
+
careamics/config/transformations/transform_model.py,sha256=i7KAtSv4nah2H7uyJFKqg7RdKF68OHIPMNNvDo0HxGY,1000
|
|
46
|
+
careamics/config/transformations/xy_flip_model.py,sha256=zU-uZ1b1zNZWckbho3onN-B7BHKhN7jbgbNZyRQhv2s,1025
|
|
47
|
+
careamics/config/transformations/xy_random_rotate90_model.py,sha256=6sYKmtCLvz0SV1qZgBSHUTH-CUjwvHnohq1HyPntbyE,894
|
|
48
|
+
careamics/config/validators/__init__.py,sha256=iv0nVI0W7j9DxFPwh0DjRCzM9P8oLQn4Gwi5rfuFrrI,180
|
|
49
|
+
careamics/config/validators/validator_utils.py,sha256=aNFzpBVbef3BZIt6MiNMVc2kW6MJDWqQgdYkFM8Gjig,2621
|
|
50
|
+
careamics/dataset/__init__.py,sha256=NQSWdpQu6BhqGGHUYuOt1hXJrGUN1LPNCP1A8duMY84,547
|
|
51
|
+
careamics/dataset/in_memory_dataset.py,sha256=DfFpSdsYM4aNw6FWn_yDHA6seQDSozGyt-Q57pDpJDA,9457
|
|
52
|
+
careamics/dataset/in_memory_pred_dataset.py,sha256=VvwW5D8TjgO_kR8eZinP-9qepSiI6ZsUN7FZ0Rvc8Bs,2161
|
|
53
|
+
careamics/dataset/in_memory_tiled_pred_dataset.py,sha256=DANmlnlV1ysXKdwGvmJoOYKcjlgoMhnSGSDRpeK79ZA,3552
|
|
54
|
+
careamics/dataset/iterable_dataset.py,sha256=uEmiO8n2qirJv5XkMU5lKmPMBL7rw06GRQQL6BQpfus,9694
|
|
55
|
+
careamics/dataset/iterable_pred_dataset.py,sha256=AtsNRKOEkfDG8y3wa0bi5ImEqEaU2E5LM_iXcuK4Ehw,3706
|
|
56
|
+
careamics/dataset/iterable_tiled_pred_dataset.py,sha256=Q0OkAtYWlsClRSNdl74sPIvbq5rLGZvORzywOJ_YrUw,4499
|
|
57
|
+
careamics/dataset/zarr_dataset.py,sha256=lojnK5bhiF1vyjuPtWXBrZ9sy5fT_rBvZJbbbnE-H_I,5665
|
|
58
|
+
careamics/dataset/dataset_utils/__init__.py,sha256=DuPIjndTs0VhZsUIk2IcSk6H9N0d0ARyA5U3v3Qz-hw,666
|
|
59
|
+
careamics/dataset/dataset_utils/dataset_utils.py,sha256=zYNglet5lYKxIhTeOGG2K24oujC-m5zyYlwJcQcleVA,2662
|
|
60
|
+
careamics/dataset/dataset_utils/file_utils.py,sha256=s7RmmnHa7ojl4kauXfuj7hn0dAx0HB1d2ES7sUSS7IQ,4062
|
|
61
|
+
careamics/dataset/dataset_utils/iterate_over_files.py,sha256=ACiltjAH2aKR0UOEvWPuuxv68NWEd2aDMFE07caxhWo,2859
|
|
62
|
+
careamics/dataset/dataset_utils/read_tiff.py,sha256=emzQgodEaBsLB0ULH4lUUbsDd9PylR8DQ3rb7g0l2b8,1336
|
|
63
|
+
careamics/dataset/dataset_utils/read_utils.py,sha256=0nsfzHq3zr9kjm2qZZrMRKI5LC5MiRSH35xPBCYyBrQ,579
|
|
64
|
+
careamics/dataset/dataset_utils/read_zarr.py,sha256=2jzREAnJDQSv0qmsL-v00BxmiZ_sp0ijq667LZSQ_hY,1685
|
|
65
|
+
careamics/dataset/dataset_utils/running_stats.py,sha256=0uOLaXpNwmY4lIElsHg4Ezf1YRbHy9An8GHXGYOaYmg,5565
|
|
66
|
+
careamics/dataset/patching/__init__.py,sha256=7-s12oUAZNlMOwSkxSwbD7vojQINWYFzn_4qIJ87WBg,37
|
|
67
|
+
careamics/dataset/patching/patching.py,sha256=XoJMfOwYItNQNJOJmRN9swtFiFu0G2L6qvUhP7jhYes,8432
|
|
68
|
+
careamics/dataset/patching/random_patching.py,sha256=61sLxA4eJN5TIWBVIDZdJahS_CkclpM7Kc_VdPj91dU,6486
|
|
69
|
+
careamics/dataset/patching/sequential_patching.py,sha256=_l3Q2uYIhjMJMaxDdSbHC9_2kRF9eLz-Xs3r9i7j3Nc,5903
|
|
70
|
+
careamics/dataset/patching/validate_patch_dimension.py,sha256=sQQ0-4b4uu60MNKkoWv95KxQ80J7Ku0CEk0-kAXlKeI,2134
|
|
71
|
+
careamics/dataset/tiling/__init__.py,sha256=XynyAz85hVfkLtrG0lrMr_aBQm_YEwfu5uFcXMGHlOA,190
|
|
72
|
+
careamics/dataset/tiling/collate_tiles.py,sha256=OrPZ-n-V3uGOc_7CcPnyEJqdbEVDlTfJfWmZnyBZ-HA,978
|
|
73
|
+
careamics/dataset/tiling/tiled_patching.py,sha256=Zhhc0TwXVy4P_tZxS3B5tQZK6SRhGiQwnzVr-1BC4ww,5952
|
|
74
|
+
careamics/losses/__init__.py,sha256=kVEwfZ2xXfd8x0n-VHGKm6qvzbto5pIIJYP_jN-bCtw,89
|
|
75
|
+
careamics/losses/loss_factory.py,sha256=vaMlxH5oescWTKlK1adWwbeD9tW4Ti-p7qKmc1iHCi0,1005
|
|
76
|
+
careamics/losses/losses.py,sha256=DKwHZ9ifVe6wMd3tBOiswLC-saU1bj1RCcXGOkREmKU,2328
|
|
77
|
+
careamics/lvae_training/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
+
careamics/lvae_training/data_modules.py,sha256=A5Uoo4qtPdX99QSi-Zl22LzO0I1DszJbQuXMGUXGQEE,46665
|
|
79
|
+
careamics/lvae_training/data_utils.py,sha256=tRk0k0TkBLPocqlUlkwQN_dm5jzw5z74YNs2DsCuy9Y,21670
|
|
80
|
+
careamics/lvae_training/eval_utils.py,sha256=_AlXNXk4uGS2AGsF4PHJZpJoWBgq32kvQLEh7awOIvc,32405
|
|
81
|
+
careamics/lvae_training/get_config.py,sha256=-CWVxlPo71_huUSmXnmYvOmgvcvrZiv0wIpXnR32l6E,3054
|
|
82
|
+
careamics/lvae_training/lightning_module.py,sha256=ryr7iHqCMzCl5esi6_gEcnKFDQkMrw0EXK9Zfgv1Nek,27186
|
|
83
|
+
careamics/lvae_training/metrics.py,sha256=KTDAKhe3vh-YxzGibjtkIG2nnUyujbnwqX4xGwaRXwE,6718
|
|
84
|
+
careamics/lvae_training/train_lvae.py,sha256=Eu--3-RHSfhQVsJ-CTDXhUeoM1fzf_H9IGtBaNPOsHI,11044
|
|
85
|
+
careamics/lvae_training/train_utils.py,sha256=e-d4QsF-li8MmAPkAmB1daHpkuU16nBTnQFZYqpTjn4,3567
|
|
86
|
+
careamics/model_io/__init__.py,sha256=HITzjiuZQwo-rQ2_Ma3bz9l7PDANv1_S489E-tffV9s,155
|
|
87
|
+
careamics/model_io/bmz_io.py,sha256=Gc6uN0aO_kEDzQnJTSTNDS7PiYC684FfDNI0X9rZm8g,7031
|
|
88
|
+
careamics/model_io/model_io_utils.py,sha256=Pxm_9uYRBDOMa8dC4ENk-Vre9CXsTIORGvMwn8mLzXY,2347
|
|
89
|
+
careamics/model_io/bioimage/__init__.py,sha256=r94nu8WDAvj0Fbu4C-iJXdOhfSQXeZBvN3UKsLG0RNI,298
|
|
90
|
+
careamics/model_io/bioimage/_readme_factory.py,sha256=LZAuEiWNBTPaD8KrLPMq16yJuOPKDZiGQuTMHKLvoT4,3514
|
|
91
|
+
careamics/model_io/bioimage/bioimage_utils.py,sha256=nlW0J1daYyLbL6yVN3QSn3HhA2joMjIG-thK64lpVTY,1085
|
|
92
|
+
careamics/model_io/bioimage/model_description.py,sha256=3jw4wkJDefLEW-2BbEfAml3AwyteZszL-v8JYpJRcOo,9635
|
|
93
|
+
careamics/models/__init__.py,sha256=Wty5hwQb_As33pQOZqY5j-DpDOdh5ArBH4BhQDSuXTQ,133
|
|
94
|
+
careamics/models/activation.py,sha256=xdqz4-yKV7oElG_dDrYuibS8HOiYvKdV_r9FwWPvaDE,977
|
|
95
|
+
careamics/models/layers.py,sha256=oWzpq8OdHFEJqPWC9X8IRPNe0XqAnesSqwoT6V3t1Mw,13712
|
|
96
|
+
careamics/models/model_factory.py,sha256=5YRwRRUemxb-pTRL3VWn8N61tCGyhrurqPgcFaNETb0,1360
|
|
97
|
+
careamics/models/unet.py,sha256=3pXpiCIw7WUaDV0Jmczkxi99C5-Zu3NpQpWxgRkeGL8,14321
|
|
98
|
+
careamics/models/lvae/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
|
+
careamics/models/lvae/layers.py,sha256=wFuQgmtJtB7YNuNi2dVoOEWq1ndR6ku4iGvC2u0TJlM,84991
|
|
100
|
+
careamics/models/lvae/likelihoods.py,sha256=FRFTh34FaBLGxn9OXFzqFyHhhJMSKYhgqxwG65VbGh8,10489
|
|
101
|
+
careamics/models/lvae/lvae.py,sha256=5RlK4-h55dGz9UMCh8JCbLsaaIQ5S2IKGeI9d4nD5dA,40167
|
|
102
|
+
careamics/models/lvae/noise_models.py,sha256=yotY5gkPAowbI7esOmHlzBWcSsZlH2G3U7uYIWghGwY,15703
|
|
103
|
+
careamics/models/lvae/utils.py,sha256=muy4nLHmnB3BPAI0tQbJK_vVtBZOLBvhrJigHIOx5V4,11542
|
|
104
|
+
careamics/prediction_utils/__init__.py,sha256=0rtfNXeH5RvJ9ieeCbBV9i9eyLXxo_IMpqVH1-H2N8E,359
|
|
105
|
+
careamics/prediction_utils/create_pred_datamodule.py,sha256=rv_Q0v4Es-NE1IU_nUkJYUsYo3Gh3whvOj43WlTw2hc,5846
|
|
106
|
+
careamics/prediction_utils/prediction_outputs.py,sha256=1BHJF_dpw3QwH8uF_uE1u4tVui01mm899O2VcGvWYvM,4730
|
|
107
|
+
careamics/prediction_utils/stitch_prediction.py,sha256=VRJc51KHg_3gWTCNdvQpHfrGaNqDHd9hHhnvqxg2cjE,3081
|
|
108
|
+
careamics/transforms/__init__.py,sha256=VIHIsC8sMAh1TCm67ifB816Zp-LRo6rAONPuT2Qs3bs,483
|
|
109
|
+
careamics/transforms/compose.py,sha256=mTkhoxvgvsBqNoz9RWpJ_tqsDl1CDp0-UARTjUuBRf4,3477
|
|
110
|
+
careamics/transforms/n2v_manipulate.py,sha256=Gty7Jtu-RiFb1EnlrOi652qAOGKU5ZHvidRvykWqJxg,5438
|
|
111
|
+
careamics/transforms/normalize.py,sha256=dfGWCGPyNwyEqg5wUCAA8cGdT1MvNkpKUEpw8Cw8DfA,7274
|
|
112
|
+
careamics/transforms/pixel_manipulation.py,sha256=lNA19Vlo_3GHzRnT_4AFuv6eWQaxbie2PTYGalCY4YQ,13346
|
|
113
|
+
careamics/transforms/struct_mask_parameters.py,sha256=jE29Li9sx3olaRnqYfJsSlKi2t0WQzJmCm9aCbIQEsA,421
|
|
114
|
+
careamics/transforms/transform.py,sha256=cEqc4ci8na70i-HIGYC7udRfVa8D_8OjdRVrr3txLvQ,464
|
|
115
|
+
careamics/transforms/tta.py,sha256=78S7Df9rLHmEVSQSI1qDcRrRJGauyG3oaIrXkckCkmw,2335
|
|
116
|
+
careamics/transforms/xy_flip.py,sha256=Q1kKTa2kE3W1P3dlpT4GAVSSHM3TebnrvIyWh75Fnko,3443
|
|
117
|
+
careamics/transforms/xy_random_rotate90.py,sha256=zWdBROLLjgxTMSQEQesJr17j84BmZhKWCMVVONHU8mw,2781
|
|
118
|
+
careamics/utils/__init__.py,sha256=tO1X5QTfnthepuW0uYagz5fWehtLtwK2gPmkUeqhdOw,334
|
|
119
|
+
careamics/utils/base_enum.py,sha256=bz1D8mDx5V5hdnJ3WAzJXWHJTbgwAky5FprUt9F5cMA,1387
|
|
120
|
+
careamics/utils/context.py,sha256=Ljf70OR1FcYpsVpxb5Sr2fzmPVIZgDS1uZob_3BcELg,1409
|
|
121
|
+
careamics/utils/logging.py,sha256=coIscjkDYpqcsGnsONuYOdIYd6_gHxdnYIZ-e9Y2Ybg,10322
|
|
122
|
+
careamics/utils/metrics.py,sha256=9YQe5Aj2Pv2h9jnRFeRbDQ_3qXAW0QHpucSqiUtwDcA,2382
|
|
123
|
+
careamics/utils/path_utils.py,sha256=8AugiG5DOmzgSnTCJI8vypXaPE0XhnR-9pzeiFUZ-0I,554
|
|
124
|
+
careamics/utils/ram.py,sha256=tksyn8dVX_iJXmrDZDGub32hFZWIaNxnMheO5G1p43I,244
|
|
125
|
+
careamics/utils/receptive_field.py,sha256=Y2h4c8S6glX3qcx5KHDmO17Kkuyey9voxfoXyqcAfiM,3296
|
|
126
|
+
careamics/utils/torch_utils.py,sha256=g1zxdlM7_BA7mMLcCzmrxZX4LmH__KXlJibC95muVaA,3014
|
|
127
|
+
careamics-0.1.0rc7.dist-info/METADATA,sha256=ZIJHL8fCiF2MDXpkvtegSSA889deeY9USh0emDYJncM,3525
|
|
128
|
+
careamics-0.1.0rc7.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
|
129
|
+
careamics-0.1.0rc7.dist-info/licenses/LICENSE,sha256=6zdNW-k_xHRKYWUf9tDI_ZplUciFHyj0g16DYuZ2udw,1509
|
|
130
|
+
careamics-0.1.0rc7.dist-info/RECORD,,
|