monai-weekly 1.4.dev2426__py3-none-any.whl → 1.4.dev2428__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.
- monai/__init__.py +2 -2
- monai/_version.py +3 -3
- monai/apps/auto3dseg/auto_runner.py +1 -1
- monai/apps/generation/__init__.py +10 -0
- monai/apps/generation/maisi/__init__.py +10 -0
- monai/apps/generation/maisi/networks/__init__.py +10 -0
- monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +973 -0
- monai/apps/generation/maisi/networks/controlnet_maisi.py +178 -0
- monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +410 -0
- monai/apps/generation/maisi/utils/__init__.py +10 -0
- monai/apps/generation/maisi/utils/morphological_ops.py +170 -0
- monai/auto3dseg/utils.py +1 -1
- monai/data/torchscript_utils.py +1 -1
- monai/data/ultrasound_confidence_map.py +5 -5
- monai/optimizers/lr_finder.py +1 -1
- monai/transforms/io/array.py +3 -3
- monai/utils/misc.py +20 -2
- {monai_weekly-1.4.dev2426.dist-info → monai_weekly-1.4.dev2428.dist-info}/METADATA +5 -5
- {monai_weekly-1.4.dev2426.dist-info → monai_weekly-1.4.dev2428.dist-info}/RECORD +22 -14
- {monai_weekly-1.4.dev2426.dist-info → monai_weekly-1.4.dev2428.dist-info}/WHEEL +1 -1
- {monai_weekly-1.4.dev2426.dist-info → monai_weekly-1.4.dev2428.dist-info}/LICENSE +0 -0
- {monai_weekly-1.4.dev2426.dist-info → monai_weekly-1.4.dev2428.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,170 @@
|
|
1
|
+
# Copyright (c) MONAI Consortium
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
3
|
+
# you may not use this file except in compliance with the License.
|
4
|
+
# You may obtain a copy of the License at
|
5
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
6
|
+
# Unless required by applicable law or agreed to in writing, software
|
7
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
8
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
9
|
+
# See the License for the specific language governing permissions and
|
10
|
+
# limitations under the License.
|
11
|
+
|
12
|
+
from __future__ import annotations
|
13
|
+
|
14
|
+
from typing import Sequence
|
15
|
+
|
16
|
+
import torch
|
17
|
+
import torch.nn.functional as F
|
18
|
+
from torch import Tensor
|
19
|
+
|
20
|
+
from monai.config import NdarrayOrTensor
|
21
|
+
from monai.utils import convert_data_type, convert_to_dst_type, ensure_tuple_rep
|
22
|
+
|
23
|
+
|
24
|
+
def erode(mask: NdarrayOrTensor, filter_size: int | Sequence[int] = 3, pad_value: float = 1.0) -> NdarrayOrTensor:
|
25
|
+
"""
|
26
|
+
Erode 2D/3D binary mask.
|
27
|
+
|
28
|
+
Args:
|
29
|
+
mask: input 2D/3D binary mask, [N,C,M,N] or [N,C,M,N,P] torch tensor or ndarray.
|
30
|
+
filter_size: erosion filter size, has to be odd numbers, default to be 3.
|
31
|
+
pad_value: the filled value for padding. We need to pad the input before filtering
|
32
|
+
to keep the output with the same size as input. Usually use default value
|
33
|
+
and not changed.
|
34
|
+
|
35
|
+
Return:
|
36
|
+
eroded mask, same shape and data type as input.
|
37
|
+
|
38
|
+
Example:
|
39
|
+
|
40
|
+
.. code-block:: python
|
41
|
+
|
42
|
+
# define a naive mask
|
43
|
+
mask = torch.zeros(3,2,3,3,3)
|
44
|
+
mask[:,:,1,1,1] = 1.0
|
45
|
+
filter_size = 3
|
46
|
+
erode_result = erode(mask, filter_size) # expect torch.zeros(3,2,3,3,3)
|
47
|
+
dilate_result = dilate(mask, filter_size) # expect torch.ones(3,2,3,3,3)
|
48
|
+
"""
|
49
|
+
mask_t, *_ = convert_data_type(mask, torch.Tensor)
|
50
|
+
res_mask_t = erode_t(mask_t, filter_size=filter_size, pad_value=pad_value)
|
51
|
+
res_mask: NdarrayOrTensor
|
52
|
+
res_mask, *_ = convert_to_dst_type(src=res_mask_t, dst=mask)
|
53
|
+
return res_mask
|
54
|
+
|
55
|
+
|
56
|
+
def dilate(mask: NdarrayOrTensor, filter_size: int | Sequence[int] = 3, pad_value: float = 0.0) -> NdarrayOrTensor:
|
57
|
+
"""
|
58
|
+
Dilate 2D/3D binary mask.
|
59
|
+
|
60
|
+
Args:
|
61
|
+
mask: input 2D/3D binary mask, [N,C,M,N] or [N,C,M,N,P] torch tensor or ndarray.
|
62
|
+
filter_size: dilation filter size, has to be odd numbers, default to be 3.
|
63
|
+
pad_value: the filled value for padding. We need to pad the input before filtering
|
64
|
+
to keep the output with the same size as input. Usually use default value
|
65
|
+
and not changed.
|
66
|
+
|
67
|
+
Return:
|
68
|
+
dilated mask, same shape and data type as input.
|
69
|
+
|
70
|
+
Example:
|
71
|
+
|
72
|
+
.. code-block:: python
|
73
|
+
|
74
|
+
# define a naive mask
|
75
|
+
mask = torch.zeros(3,2,3,3,3)
|
76
|
+
mask[:,:,1,1,1] = 1.0
|
77
|
+
filter_size = 3
|
78
|
+
erode_result = erode(mask,filter_size) # expect torch.zeros(3,2,3,3,3)
|
79
|
+
dilate_result = dilate(mask,filter_size) # expect torch.ones(3,2,3,3,3)
|
80
|
+
"""
|
81
|
+
mask_t, *_ = convert_data_type(mask, torch.Tensor)
|
82
|
+
res_mask_t = dilate_t(mask_t, filter_size=filter_size, pad_value=pad_value)
|
83
|
+
res_mask: NdarrayOrTensor
|
84
|
+
res_mask, *_ = convert_to_dst_type(src=res_mask_t, dst=mask)
|
85
|
+
return res_mask
|
86
|
+
|
87
|
+
|
88
|
+
def get_morphological_filter_result_t(mask_t: Tensor, filter_size: int | Sequence[int], pad_value: float) -> Tensor:
|
89
|
+
"""
|
90
|
+
Apply a morphological filter to a 2D/3D binary mask tensor.
|
91
|
+
|
92
|
+
Args:
|
93
|
+
mask_t: input 2D/3D binary mask, [N,C,M,N] or [N,C,M,N,P] torch tensor.
|
94
|
+
filter_size: morphological filter size, has to be odd numbers.
|
95
|
+
pad_value: the filled value for padding. We need to pad the input before filtering
|
96
|
+
to keep the output with the same size as input.
|
97
|
+
|
98
|
+
Return:
|
99
|
+
Tensor: Morphological filter result mask, same shape as input.
|
100
|
+
"""
|
101
|
+
spatial_dims = len(mask_t.shape) - 2
|
102
|
+
if spatial_dims not in [2, 3]:
|
103
|
+
raise ValueError(
|
104
|
+
f"spatial_dims must be either 2 or 3, "
|
105
|
+
f"got spatial_dims={spatial_dims} for mask tensor with shape of {mask_t.shape}."
|
106
|
+
)
|
107
|
+
|
108
|
+
# Define the structuring element
|
109
|
+
filter_size = ensure_tuple_rep(filter_size, spatial_dims)
|
110
|
+
if any(size % 2 == 0 for size in filter_size):
|
111
|
+
raise ValueError(f"All dimensions in filter_size must be odd numbers, got {filter_size}.")
|
112
|
+
|
113
|
+
structuring_element = torch.ones((mask_t.shape[1], mask_t.shape[1]) + filter_size).to(mask_t.device)
|
114
|
+
|
115
|
+
# Pad the input tensor to handle border pixels
|
116
|
+
# Calculate padding size
|
117
|
+
pad_size = [size // 2 for size in filter_size for _ in range(2)]
|
118
|
+
|
119
|
+
input_padded = F.pad(mask_t.float(), pad_size, mode="constant", value=pad_value)
|
120
|
+
|
121
|
+
# Apply filter operation
|
122
|
+
conv_fn = F.conv2d if spatial_dims == 2 else F.conv3d
|
123
|
+
output = conv_fn(input_padded, structuring_element, padding=0) / torch.sum(structuring_element[0, ...])
|
124
|
+
|
125
|
+
return output
|
126
|
+
|
127
|
+
|
128
|
+
def erode_t(mask_t: Tensor, filter_size: int | Sequence[int] = 3, pad_value: float = 1.0) -> Tensor:
|
129
|
+
"""
|
130
|
+
Erode 2D/3D binary mask with data type as torch tensor.
|
131
|
+
|
132
|
+
Args:
|
133
|
+
mask_t: input 2D/3D binary mask, [N,C,M,N] or [N,C,M,N,P] torch tensor.
|
134
|
+
filter_size: erosion filter size, has to be odd numbers, default to be 3.
|
135
|
+
pad_value: the filled value for padding. We need to pad the input before filtering
|
136
|
+
to keep the output with the same size as input. Usually use default value
|
137
|
+
and not changed.
|
138
|
+
|
139
|
+
Return:
|
140
|
+
Tensor: eroded mask, same shape as input.
|
141
|
+
"""
|
142
|
+
|
143
|
+
output = get_morphological_filter_result_t(mask_t, filter_size, pad_value)
|
144
|
+
|
145
|
+
# Set output values based on the minimum value within the structuring element
|
146
|
+
output = torch.where(torch.abs(output - 1.0) < 1e-7, 1.0, 0.0)
|
147
|
+
|
148
|
+
return output
|
149
|
+
|
150
|
+
|
151
|
+
def dilate_t(mask_t: Tensor, filter_size: int | Sequence[int] = 3, pad_value: float = 0.0) -> Tensor:
|
152
|
+
"""
|
153
|
+
Dilate 2D/3D binary mask with data type as torch tensor.
|
154
|
+
|
155
|
+
Args:
|
156
|
+
mask_t: input 2D/3D binary mask, [N,C,M,N] or [N,C,M,N,P] torch tensor.
|
157
|
+
filter_size: dilation filter size, has to be odd numbers, default to be 3.
|
158
|
+
pad_value: the filled value for padding. We need to pad the input before filtering
|
159
|
+
to keep the output with the same size as input. Usually use default value
|
160
|
+
and not changed.
|
161
|
+
|
162
|
+
Return:
|
163
|
+
Tensor: dilated mask, same shape as input.
|
164
|
+
"""
|
165
|
+
output = get_morphological_filter_result_t(mask_t, filter_size, pad_value)
|
166
|
+
|
167
|
+
# Set output values based on the minimum value within the structuring element
|
168
|
+
output = torch.where(output > 0, 1.0, 0.0)
|
169
|
+
|
170
|
+
return output
|
monai/auto3dseg/utils.py
CHANGED
@@ -407,7 +407,7 @@ def _prepare_cmd_default(cmd: str, cmd_prefix: str | None = None, **kwargs: Any)
|
|
407
407
|
|
408
408
|
Args:
|
409
409
|
cmd: the command or script to run in the distributed job.
|
410
|
-
cmd_prefix: the command prefix to run the script, e.g., "python", "python -m", "python3", "/opt/conda/bin/python3.
|
410
|
+
cmd_prefix: the command prefix to run the script, e.g., "python", "python -m", "python3", "/opt/conda/bin/python3.9 ".
|
411
411
|
kwargs: the keyword arguments to be passed to the script.
|
412
412
|
|
413
413
|
Returns:
|
monai/data/torchscript_utils.py
CHANGED
@@ -116,7 +116,7 @@ def load_net_with_metadata(
|
|
116
116
|
Returns:
|
117
117
|
Triple containing loaded object, metadata dict, and extra files dict containing other file data if present
|
118
118
|
"""
|
119
|
-
extra_files =
|
119
|
+
extra_files = dict.fromkeys(more_extra_files, "")
|
120
120
|
extra_files[METADATA_FILENAME] = ""
|
121
121
|
|
122
122
|
jit_obj = torch.jit.load(filename_prefix_or_stream, map_location, extra_files)
|
@@ -19,10 +19,10 @@ from monai.utils import min_version, optional_import
|
|
19
19
|
__all__ = ["UltrasoundConfidenceMap"]
|
20
20
|
|
21
21
|
cv2, _ = optional_import("cv2")
|
22
|
-
csc_matrix, _ = optional_import("scipy.sparse", "1.
|
23
|
-
spsolve, _ = optional_import("scipy.sparse.linalg", "1.
|
24
|
-
cg, _ = optional_import("scipy.sparse.linalg", "1.
|
25
|
-
hilbert, _ = optional_import("scipy.signal", "1.
|
22
|
+
csc_matrix, _ = optional_import("scipy.sparse", "1.12.0", min_version, "csc_matrix")
|
23
|
+
spsolve, _ = optional_import("scipy.sparse.linalg", "1.12.0", min_version, "spsolve")
|
24
|
+
cg, _ = optional_import("scipy.sparse.linalg", "1.12.0", min_version, "cg")
|
25
|
+
hilbert, _ = optional_import("scipy.signal", "1.12.0", min_version, "hilbert")
|
26
26
|
ruge_stuben_solver, _ = optional_import("pyamg", "5.0.0", min_version, "ruge_stuben_solver")
|
27
27
|
|
28
28
|
|
@@ -285,7 +285,7 @@ class UltrasoundConfidenceMap:
|
|
285
285
|
lap_sparse = lap.tocsr()
|
286
286
|
ml = ruge_stuben_solver(lap_sparse, coarse_solver="pinv")
|
287
287
|
m = ml.aspreconditioner(cycle="V")
|
288
|
-
x, _ = cg(lap, rhs,
|
288
|
+
x, _ = cg(lap, rhs, rtol=self.cg_tol, maxiter=self.cg_maxiter, M=m)
|
289
289
|
else:
|
290
290
|
x = spsolve(lap, rhs)
|
291
291
|
|
monai/optimizers/lr_finder.py
CHANGED
@@ -524,7 +524,7 @@ class LearningRateFinder:
|
|
524
524
|
# Plot the LR with steepest gradient
|
525
525
|
if steepest_lr:
|
526
526
|
lr_at_steepest_grad, loss_at_steepest_grad = self.get_steepest_gradient(skip_start, skip_end)
|
527
|
-
if lr_at_steepest_grad is not None:
|
527
|
+
if lr_at_steepest_grad is not None and loss_at_steepest_grad is not None:
|
528
528
|
ax.scatter(
|
529
529
|
lr_at_steepest_grad,
|
530
530
|
loss_at_steepest_grad,
|
monai/transforms/io/array.py
CHANGED
@@ -307,11 +307,11 @@ class SaveImage(Transform):
|
|
307
307
|
|
308
308
|
Args:
|
309
309
|
output_dir: output image directory.
|
310
|
-
|
310
|
+
Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
|
311
311
|
output_postfix: a string appended to all output file names, default to `trans`.
|
312
|
-
|
312
|
+
Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
|
313
313
|
output_ext: output file extension name.
|
314
|
-
|
314
|
+
Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
|
315
315
|
output_dtype: data type (if not None) for saving data. Defaults to ``np.float32``.
|
316
316
|
resample: whether to resample image (if needed) before saving the data array,
|
317
317
|
based on the ``"spatial_shape"`` (and ``"original_affine"``) from metadata.
|
monai/utils/misc.py
CHANGED
@@ -24,7 +24,6 @@ import types
|
|
24
24
|
import warnings
|
25
25
|
from ast import literal_eval
|
26
26
|
from collections.abc import Callable, Iterable, Sequence
|
27
|
-
from distutils.util import strtobool
|
28
27
|
from math import log10
|
29
28
|
from pathlib import Path
|
30
29
|
from typing import TYPE_CHECKING, Any, TypeVar, cast, overload
|
@@ -78,6 +77,25 @@ __all__ = [
|
|
78
77
|
"run_cmd",
|
79
78
|
]
|
80
79
|
|
80
|
+
|
81
|
+
def _strtobool(val: str) -> bool:
|
82
|
+
"""
|
83
|
+
Replaces deprecated (pre python 3.12)
|
84
|
+
distutils strtobool function.
|
85
|
+
|
86
|
+
True values are y, yes, t, true, on and 1;
|
87
|
+
False values are n, no, f, false, off and 0.
|
88
|
+
Raises ValueError if val is anything else.
|
89
|
+
"""
|
90
|
+
val = val.lower()
|
91
|
+
if val in ("y", "yes", "t", "true", "on", "1"):
|
92
|
+
return True
|
93
|
+
elif val in ("n", "no", "f", "false", "off", "0"):
|
94
|
+
return False
|
95
|
+
else:
|
96
|
+
raise ValueError(f"invalid truth value {val}")
|
97
|
+
|
98
|
+
|
81
99
|
_seed = None
|
82
100
|
_flag_deterministic = torch.backends.cudnn.deterministic
|
83
101
|
_flag_cudnn_benchmark = torch.backends.cudnn.benchmark
|
@@ -400,7 +418,7 @@ def list_to_dict(items):
|
|
400
418
|
d[key] = literal_eval(value)
|
401
419
|
except ValueError:
|
402
420
|
try:
|
403
|
-
d[key] = bool(
|
421
|
+
d[key] = bool(_strtobool(str(value)))
|
404
422
|
except ValueError:
|
405
423
|
d[key] = value
|
406
424
|
return d
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: monai-weekly
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.dev2428
|
4
4
|
Summary: AI Toolkit for Healthcare Imaging
|
5
5
|
Home-page: https://monai.io/
|
6
6
|
Author: MONAI Consortium
|
@@ -16,9 +16,9 @@ Classifier: Intended Audience :: Science/Research
|
|
16
16
|
Classifier: Intended Audience :: Healthcare Industry
|
17
17
|
Classifier: Programming Language :: C++
|
18
18
|
Classifier: Programming Language :: Python :: 3
|
19
|
-
Classifier: Programming Language :: Python :: 3.8
|
20
19
|
Classifier: Programming Language :: Python :: 3.9
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
22
22
|
Classifier: Topic :: Scientific/Engineering
|
23
23
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
24
24
|
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
@@ -26,7 +26,7 @@ Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
26
26
|
Classifier: Topic :: Software Development
|
27
27
|
Classifier: Topic :: Software Development :: Libraries
|
28
28
|
Classifier: Typing :: Typed
|
29
|
-
Requires-Python: >=3.
|
29
|
+
Requires-Python: >=3.9
|
30
30
|
Description-Content-Type: text/markdown; charset=UTF-8
|
31
31
|
License-File: LICENSE
|
32
32
|
Requires-Dist: torch >=1.9
|
@@ -35,7 +35,6 @@ Provides-Extra: all
|
|
35
35
|
Requires-Dist: nibabel ; extra == 'all'
|
36
36
|
Requires-Dist: ninja ; extra == 'all'
|
37
37
|
Requires-Dist: scikit-image >=0.14.2 ; extra == 'all'
|
38
|
-
Requires-Dist: scipy >=1.7.1 ; extra == 'all'
|
39
38
|
Requires-Dist: pillow ; extra == 'all'
|
40
39
|
Requires-Dist: tensorboard ; extra == 'all'
|
41
40
|
Requires-Dist: gdown >=4.7.3 ; extra == 'all'
|
@@ -70,6 +69,7 @@ Requires-Dist: huggingface-hub ; extra == 'all'
|
|
70
69
|
Requires-Dist: pyamg >=5.0.0 ; extra == 'all'
|
71
70
|
Requires-Dist: transformers <4.41.0,>=4.36.0 ; (python_version <= "3.10") and extra == 'all'
|
72
71
|
Requires-Dist: onnxruntime ; (python_version <= "3.10") and extra == 'all'
|
72
|
+
Requires-Dist: scipy >=1.12.0 ; (python_version >= "3.9") and extra == 'all'
|
73
73
|
Requires-Dist: cucim-cu12 ; (python_version >= "3.9" and python_version <= "3.10") and extra == 'all'
|
74
74
|
Provides-Extra: clearml
|
75
75
|
Requires-Dist: clearml ; extra == 'clearml'
|
@@ -131,7 +131,7 @@ Requires-Dist: nvidia-ml-py ; extra == 'pynvml'
|
|
131
131
|
Provides-Extra: pyyaml
|
132
132
|
Requires-Dist: pyyaml ; extra == 'pyyaml'
|
133
133
|
Provides-Extra: scipy
|
134
|
-
Requires-Dist: scipy >=1.
|
134
|
+
Requires-Dist: scipy >=1.12.0 ; (python_version >= "3.9") and extra == 'scipy'
|
135
135
|
Provides-Extra: skimage
|
136
136
|
Requires-Dist: scikit-image >=0.14.2 ; extra == 'skimage'
|
137
137
|
Provides-Extra: tensorboard
|
@@ -1,5 +1,5 @@
|
|
1
|
-
monai/__init__.py,sha256=
|
2
|
-
monai/_version.py,sha256=
|
1
|
+
monai/__init__.py,sha256=GMN5bu8HXSrLOv8JrCwUEKIVD183yWjRRzNTpu74kuU,2722
|
2
|
+
monai/_version.py,sha256=y4EFYM-nXr2YPC15t-uLLjvkpi1fvukHoIo4zV9isJI,503
|
3
3
|
monai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
monai/_extensions/__init__.py,sha256=NEBPreRhQ8H9gVvgrLr_y52_TmqB96u_u4VQmeNT93I,642
|
5
5
|
monai/_extensions/loader.py,sha256=7SiKw36q-nOzH8CRbBurFrz7GM40GCu7rc93Tm8XpnI,3643
|
@@ -13,7 +13,7 @@ monai/apps/datasets.py,sha256=msT58BoHlQFQpD4Tx-CThwAkkaUowoNZOgcH0THg0u0,35085
|
|
13
13
|
monai/apps/utils.py,sha256=aMsYUlfAeRsdQL1YM4AA79GqPbMsQ1OQau9YNevoFQ4,14452
|
14
14
|
monai/apps/auto3dseg/__init__.py,sha256=DhUB2Ol0-iNAk1ZNmD1RkTODUOhdiibv8h9MgcLuF6s,1016
|
15
15
|
monai/apps/auto3dseg/__main__.py,sha256=fCDhD8uhmJQKkKBxLO6hMJhEvZJRIsjTc1Ad3bYmNIY,1411
|
16
|
-
monai/apps/auto3dseg/auto_runner.py,sha256=
|
16
|
+
monai/apps/auto3dseg/auto_runner.py,sha256=a4Ry93TkK0aTb68bwle8HoG4SzUbUf0IbDrY33jTReg,40106
|
17
17
|
monai/apps/auto3dseg/bundle_gen.py,sha256=y_9lbw0xk1em0TsIn7mTJHmD3OQNcNZVsjgkhdYg0Lw,28994
|
18
18
|
monai/apps/auto3dseg/data_analyzer.py,sha256=XJuQ-bSE3G_6r2i6S75jjo-klWTUGpy5aY3WqijSWqk,18628
|
19
19
|
monai/apps/auto3dseg/ensemble_builder.py,sha256=GaLpeAIW5X9oC921cevE86coOsmXW2C136FHuo6UyMo,27277
|
@@ -46,6 +46,14 @@ monai/apps/detection/utils/box_selector.py,sha256=uXI0YrhugYR68xYshRs5JpPTT1nL3Q
|
|
46
46
|
monai/apps/detection/utils/detector_utils.py,sha256=pU7bOzH-ay9Lnzu1aHCrIwlaGVf5xj13E7Somx_vFnk,10306
|
47
47
|
monai/apps/detection/utils/hard_negative_sampler.py,sha256=PywdXkFIAdudmp3W8JWM_CcLC3BKWQh5x1y0tuuokcg,13890
|
48
48
|
monai/apps/detection/utils/predict_utils.py,sha256=6j7U-7pLtbmgE6SXKR_MVImc67-M8WtzQkT89cCVsK8,5818
|
49
|
+
monai/apps/generation/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
50
|
+
monai/apps/generation/maisi/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
51
|
+
monai/apps/generation/maisi/networks/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
52
|
+
monai/apps/generation/maisi/networks/autoencoderkl_maisi.py,sha256=5kkzGuwphu_dLS9cbUGBZl2e_WffaCe1qySGj-KonbY,35479
|
53
|
+
monai/apps/generation/maisi/networks/controlnet_maisi.py,sha256=2z5ycY_3899C2TQQNUALRW1Wf2OQVlfAmZSv5dycT2I,7734
|
54
|
+
monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py,sha256=oJvP7jKLW_3vOC_HMufI0AY__c8TUd6r_E9bklzMOVE,19237
|
55
|
+
monai/apps/generation/maisi/utils/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
56
|
+
monai/apps/generation/maisi/utils/morphological_ops.py,sha256=o1zAHg1EBXmWTZUblWfPDDNAIcdiFsRjvB28Lp_NL5Q,6727
|
49
57
|
monai/apps/mmars/__init__.py,sha256=BolpgEi9jNBgrOQd3Kwp-9QQLeWQwQtlN_MJkK1eu5s,726
|
50
58
|
monai/apps/mmars/mmars.py,sha256=AYsx5FDmJ0dT0hAkWGYhM470aPIG23PYloHihDZfOKE,13115
|
51
59
|
monai/apps/mmars/model_desc.py,sha256=k7WSMRuyQN8xPax8aUmGKiTNZmcVatdqPYCgxDih-x4,9996
|
@@ -97,7 +105,7 @@ monai/auto3dseg/algo_gen.py,sha256=_BscoAnUzQKRqz5jHvdsuCe3tTxq7PUQYPMLX0WuxCc,4
|
|
97
105
|
monai/auto3dseg/analyzer.py,sha256=-2CTCFhufE6oqGvNRcNF7NQ8ovzL_U5nouxqB14koEI,41323
|
98
106
|
monai/auto3dseg/operations.py,sha256=1sNDWnz5Zs2-scpb1wotxar7yGYQ-VPI-_b2KnZqW9g,5110
|
99
107
|
monai/auto3dseg/seg_summarizer.py,sha256=T5Kwvc6eKet-vlzvBQgCLHbxHto-P5tiN_7uIk5uVfs,8717
|
100
|
-
monai/auto3dseg/utils.py,sha256=
|
108
|
+
monai/auto3dseg/utils.py,sha256=zEicEO_--6-1kzT5HlmhAAd575gnl2AFmW8O3FnIznE,18674
|
101
109
|
monai/bundle/__init__.py,sha256=xvYgiAzq9fiyMkCRo0vwn41ZSzj0udyvF0jmySnqBRI,1443
|
102
110
|
monai/bundle/__main__.py,sha256=RiAn6raPUvPMfXvd03irAhB3nkIAgG1lf8GE34PG4Js,952
|
103
111
|
monai/bundle/config_item.py,sha256=rMjXSGkjJZdi04BwSHwCcIwzIb_TflmC3xDhC3SVJRs,16151
|
@@ -131,8 +139,8 @@ monai/data/samplers.py,sha256=LUCAHy38ddGm67oJJp3W6ITBsDRqyGCrKtYn-pjrWc4,5102
|
|
131
139
|
monai/data/synthetic.py,sha256=H0MaQq2nnYxXEMlvOW1-XoWJWY_VKsgZ75tWLO1aCXg,7375
|
132
140
|
monai/data/test_time_augmentation.py,sha256=H1yUph4SkJ-bmKRXS-SRZfNKtWkihR7o4PTUWKuHxOw,9780
|
133
141
|
monai/data/thread_buffer.py,sha256=FtJlRwLHQzU9sf3XJk4G7b_-uKXaRQHAOMauc-zWN2Q,8840
|
134
|
-
monai/data/torchscript_utils.py,sha256=
|
135
|
-
monai/data/ultrasound_confidence_map.py,sha256=
|
142
|
+
monai/data/torchscript_utils.py,sha256=KoJinpJiNepP6i-1DDy3-8m1Qg1bPfAZTScmXr0LT6g,5502
|
143
|
+
monai/data/ultrasound_confidence_map.py,sha256=pEAp4lr-s00_T9d4IEYSJ5B9VQwf_T7BS9GBx8jw_Sg,14464
|
136
144
|
monai/data/utils.py,sha256=WeIcBk7SUy-IOZiPuAp6dFZl9tktJvViDG3wMHaa9dU,66686
|
137
145
|
monai/data/video_dataset.py,sha256=mMTZCkgAx_BBoF4HHWcmEuT9zoNoUVPFtPeYYt76t-A,9075
|
138
146
|
monai/data/wsi_datasets.py,sha256=Ga5VnOdOXU_tlhdub0ueD4VtWhkQG4IrueXX-abE3bA,18619
|
@@ -306,7 +314,7 @@ monai/networks/nets/vitautoenc.py,sha256=tTX-JHNl2H4y9e5Wk9rrtR6i_ebJHq90O61DnbB
|
|
306
314
|
monai/networks/nets/vnet.py,sha256=zaJi5kSiTLAuFHThSZfhJvHP6zKh3oBWsTWG-328O_g,10820
|
307
315
|
monai/networks/nets/voxelmorph.py,sha256=M6jzGn09wmTd54NeacHLWElug-Iu0ajPS_HtUaLyzDY,20811
|
308
316
|
monai/optimizers/__init__.py,sha256=XUL7o9vSL7bZImpxVZqcc1c8MwUMrOZL4nJ-mjAA7yM,796
|
309
|
-
monai/optimizers/lr_finder.py,sha256=
|
317
|
+
monai/optimizers/lr_finder.py,sha256=tbVi6qd-LLI6pENM9cDUv-Hh1HqziO3Wb9aI6JoaPng,21992
|
310
318
|
monai/optimizers/lr_scheduler.py,sha256=YPY5MWgCTmExuIOBsVJrgfErkCT1ELBekcH0XeRP6Kk,4082
|
311
319
|
monai/optimizers/novograd.py,sha256=dgjyM-WGqrEHsSKNdI3Lw1wJ2YNG3oKCYotfPsDBE80,5677
|
312
320
|
monai/optimizers/utils.py,sha256=GVsJsZWO2aAP9IzwhXgca_9gUNHFClup6qG4ZFs42z4,4133
|
@@ -330,7 +338,7 @@ monai/transforms/intensity/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJ
|
|
330
338
|
monai/transforms/intensity/array.py,sha256=bhKIAMgJu-QMQA8df9QdyancMJMShOIOGHjE__4XdXo,121574
|
331
339
|
monai/transforms/intensity/dictionary.py,sha256=RXZeQG9dPvdvjoiWWlNkYec4NDWBxYXjfct4fywv1Ic,85059
|
332
340
|
monai/transforms/io/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
333
|
-
monai/transforms/io/array.py,sha256=
|
341
|
+
monai/transforms/io/array.py,sha256=TQ84NjBwEJZXHOwKyB43cC-GB5I95KQFmjpRjXqPgSw,25648
|
334
342
|
monai/transforms/io/dictionary.py,sha256=O1fMHYJUFIgSGE1x0sGXN9Tqn5uPc1cnenfVMbRly-g,17602
|
335
343
|
monai/transforms/lazy/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
336
344
|
monai/transforms/lazy/array.py,sha256=2jNLmQ3_sMX7DdbfcT3Extpwe5FgOBbbz2RqlDlyNcw,1211
|
@@ -366,7 +374,7 @@ monai/utils/deprecate_utils.py,sha256=gKeEV4MsI51qeQ5gci2me_C-0e-tDwa3VZzd3XPQqL
|
|
366
374
|
monai/utils/dist.py,sha256=mVaKlBTQJdWAG910sh5pGLEbb_KhRAXV5cPz7amH88Y,8639
|
367
375
|
monai/utils/enums.py,sha256=Gdo9WBrFODIYz5zt6c00hGz0bqjUQbhCWsfGSgKlnAU,19674
|
368
376
|
monai/utils/jupyter_utils.py,sha256=QqcKhJxzEf6YwM8Ik_HvfVDr7gNfrfzCXdzd2urEH8M,15651
|
369
|
-
monai/utils/misc.py,sha256=
|
377
|
+
monai/utils/misc.py,sha256=o1eYmYIFRPB71PNvFM4f-3ZhoEmpL2qhl7xneKcDhbY,31380
|
370
378
|
monai/utils/module.py,sha256=Uu45ec-NHtccrA1Kv_QL-uxESLcgHLavCg9XelIa6lE,25148
|
371
379
|
monai/utils/nvtx.py,sha256=i9JBxR1uhW1ZCgLPLlTx8b907QlXkFzJyTBLMlFjhtU,6876
|
372
380
|
monai/utils/profiling.py,sha256=V2_cSHgrcmVF48_G3nUi2-O6fnXsS89nSlb8jj58YLo,15937
|
@@ -380,8 +388,8 @@ monai/visualize/img2tensorboard.py,sha256=_p5olAefUs6t-y17z0TK32fKxNnUNXVkb0Op1S
|
|
380
388
|
monai/visualize/occlusion_sensitivity.py,sha256=OQHEJLyIhB8zWqQsfKaX-1kvCjWFVYtLfS4dFC0nKFI,18160
|
381
389
|
monai/visualize/utils.py,sha256=B-MhTVs7sQbIqYS3yPnpBwPw2K82rE2PBtGIfpwZtWM,9894
|
382
390
|
monai/visualize/visualizer.py,sha256=qckyaMZCbezYUwE20k5yc-Pb7UozVavMDbrmyQwfYHY,1377
|
383
|
-
monai_weekly-1.4.
|
384
|
-
monai_weekly-1.4.
|
385
|
-
monai_weekly-1.4.
|
386
|
-
monai_weekly-1.4.
|
387
|
-
monai_weekly-1.4.
|
391
|
+
monai_weekly-1.4.dev2428.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
392
|
+
monai_weekly-1.4.dev2428.dist-info/METADATA,sha256=uP6ltDnzhLuj76agsCDBsAsYRoX-8NvDkBiI0I8ZwSI,10953
|
393
|
+
monai_weekly-1.4.dev2428.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
|
394
|
+
monai_weekly-1.4.dev2428.dist-info/top_level.txt,sha256=UaNwRzLGORdus41Ip446s3bBfViLkdkDsXDo34J2P44,6
|
395
|
+
monai_weekly-1.4.dev2428.dist-info/RECORD,,
|
File without changes
|
File without changes
|