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.
@@ -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.8 ".
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:
@@ -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 = {f: "" for f in more_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.7.1", min_version, "csc_matrix")
23
- spsolve, _ = optional_import("scipy.sparse.linalg", "1.7.1", min_version, "spsolve")
24
- cg, _ = optional_import("scipy.sparse.linalg", "1.7.1", min_version, "cg")
25
- hilbert, _ = optional_import("scipy.signal", "1.7.1", min_version, "hilbert")
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, tol=self.cg_tol, maxiter=self.cg_maxiter, M=m)
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
 
@@ -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,
@@ -307,11 +307,11 @@ class SaveImage(Transform):
307
307
 
308
308
  Args:
309
309
  output_dir: output image directory.
310
- Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
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
- Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
312
+ Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
313
313
  output_ext: output file extension name.
314
- Handled by ``folder_layout`` instead, if ``folder_layout`` is not ``None``.
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(strtobool(str(value)))
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.dev2426
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.8
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.7.1 ; extra == 'scipy'
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=ImQNW_ROu1w5VUIP1j9o-vv9jfMvOCSuTsyZm6eHluE,2722
2
- monai/_version.py,sha256=fknoI1rCBz7kKd3KcjzyJ-QgcWxoZW6hO4Vxvn5iVxE,503
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=J_vER2oth9Fg7-g5uXzVnpYKAh0nBiyfWg12arZl5bM,40106
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=YF2xkwOJ_srPu2kCpxTbIsQwTSA4wG_gl8rpZCA9HMc,18674
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=auz2GtrklxY6PMzvd-i9Kk73uIv0qydpOtzdSfZxrhE,5500
135
- monai/data/ultrasound_confidence_map.py,sha256=rO63odFjgEju0EkwQWWpb2Oau3Txy7gwWGQuTus32uM,14459
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=BooUZ29_w2fzOH6xAKOe6req1VQ78Kf7CrpJZv2fYq8,21954
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=sb-ph9vbPPFimlxqwP2za83C_oOoOX67LmRH9nkASMY,25636
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=Mn_sIkTG49yW9wi2MQrnmoxWnvcbonHCxQLG4yWWYDY,30908
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.dev2426.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
384
- monai_weekly-1.4.dev2426.dist-info/METADATA,sha256=gaJQgO7GfMPD8kqn4uW3INqCCBSG6KqvWrStKMDcTOw,10890
385
- monai_weekly-1.4.dev2426.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
386
- monai_weekly-1.4.dev2426.dist-info/top_level.txt,sha256=UaNwRzLGORdus41Ip446s3bBfViLkdkDsXDo34J2P44,6
387
- monai_weekly-1.4.dev2426.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.1)
2
+ Generator: setuptools (70.3.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5