monai-weekly 1.4.dev2434__py3-none-any.whl → 1.4.dev2436__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 +44 -2
- monai/_version.py +3 -3
- monai/apps/vista3d/inferer.py +177 -0
- monai/apps/vista3d/sampler.py +179 -0
- monai/apps/vista3d/transforms.py +224 -0
- monai/bundle/config_parser.py +5 -3
- monai/bundle/scripts.py +2 -2
- monai/bundle/utils.py +35 -1
- monai/handlers/__init__.py +1 -0
- monai/handlers/trt_handler.py +61 -0
- monai/inferers/utils.py +1 -0
- monai/metrics/generalized_dice.py +77 -48
- monai/networks/__init__.py +2 -0
- monai/networks/layers/filtering.py +6 -2
- monai/networks/nets/swin_unetr.py +4 -4
- monai/networks/nets/vista3d.py +53 -11
- monai/networks/trt_compiler.py +569 -0
- monai/networks/utils.py +225 -41
- monai/transforms/__init__.py +24 -2
- monai/transforms/io/array.py +58 -2
- monai/transforms/io/dictionary.py +29 -2
- monai/transforms/spatial/array.py +44 -0
- monai/transforms/spatial/dictionary.py +61 -0
- monai/transforms/spatial/functional.py +70 -1
- monai/transforms/utility/array.py +153 -4
- monai/transforms/utility/dictionary.py +105 -3
- monai/transforms/utils.py +83 -10
- monai/utils/__init__.py +1 -0
- monai/utils/enums.py +1 -0
- monai/utils/type_conversion.py +8 -0
- {monai_weekly-1.4.dev2434.dist-info → monai_weekly-1.4.dev2436.dist-info}/METADATA +4 -1
- {monai_weekly-1.4.dev2434.dist-info → monai_weekly-1.4.dev2436.dist-info}/RECORD +36 -31
- {monai_weekly-1.4.dev2434.dist-info → monai_weekly-1.4.dev2436.dist-info}/WHEEL +1 -1
- /monai/apps/{generation/maisi/utils → vista3d}/__init__.py +0 -0
- {monai_weekly-1.4.dev2434.dist-info → monai_weekly-1.4.dev2436.dist-info}/LICENSE +0 -0
- {monai_weekly-1.4.dev2434.dist-info → monai_weekly-1.4.dev2436.dist-info}/top_level.txt +0 -0
monai/transforms/utils.py
CHANGED
@@ -27,6 +27,7 @@ from torch import Tensor
|
|
27
27
|
import monai
|
28
28
|
from monai.config import DtypeLike, IndexSelection
|
29
29
|
from monai.config.type_definitions import NdarrayOrTensor, NdarrayTensor
|
30
|
+
from monai.data.utils import to_affine_nd
|
30
31
|
from monai.networks.layers import GaussianFilter
|
31
32
|
from monai.networks.utils import meshgrid_ij
|
32
33
|
from monai.transforms.compose import Compose
|
@@ -35,6 +36,7 @@ from monai.transforms.utils_morphological_ops import erode
|
|
35
36
|
from monai.transforms.utils_pytorch_numpy_unification import (
|
36
37
|
any_np_pt,
|
37
38
|
ascontiguousarray,
|
39
|
+
concatenate,
|
38
40
|
cumsum,
|
39
41
|
isfinite,
|
40
42
|
nonzero,
|
@@ -107,7 +109,8 @@ __all__ = [
|
|
107
109
|
"generate_spatial_bounding_box",
|
108
110
|
"get_extreme_points",
|
109
111
|
"get_largest_connected_component_mask",
|
110
|
-
"
|
112
|
+
"keep_merge_components_with_points",
|
113
|
+
"keep_components_with_positive_points",
|
111
114
|
"convert_points_to_disc",
|
112
115
|
"remove_small_objects",
|
113
116
|
"img_bounds",
|
@@ -1178,7 +1181,7 @@ def get_largest_connected_component_mask(
|
|
1178
1181
|
return convert_to_dst_type(out, dst=img, dtype=out.dtype)[0]
|
1179
1182
|
|
1180
1183
|
|
1181
|
-
def
|
1184
|
+
def keep_merge_components_with_points(
|
1182
1185
|
img_pos: NdarrayTensor,
|
1183
1186
|
img_neg: NdarrayTensor,
|
1184
1187
|
point_coords: NdarrayTensor,
|
@@ -1188,8 +1191,8 @@ def get_largest_connected_component_mask_point(
|
|
1188
1191
|
margins: int = 3,
|
1189
1192
|
) -> NdarrayTensor:
|
1190
1193
|
"""
|
1191
|
-
|
1192
|
-
negative points separately. The function is used for
|
1194
|
+
Keep connected regions of img_pos and img_neg that include the positive points and
|
1195
|
+
negative points separately. The function is used for merging automatic results with interactive
|
1193
1196
|
results in VISTA3D.
|
1194
1197
|
|
1195
1198
|
Args:
|
@@ -1199,6 +1202,7 @@ def get_largest_connected_component_mask_point(
|
|
1199
1202
|
neg_val: negative point label values.
|
1200
1203
|
point_coords: the coordinates of each point, shape [B, N, 3], where N means the number of points.
|
1201
1204
|
point_labels: the label of each point, shape [B, N].
|
1205
|
+
margins: include points outside of the region but within the margin.
|
1202
1206
|
"""
|
1203
1207
|
|
1204
1208
|
cucim_skimage, has_cucim = optional_import("cucim.skimage")
|
@@ -1249,6 +1253,49 @@ def get_largest_connected_component_mask_point(
|
|
1249
1253
|
return convert_to_dst_type(outs, dst=img_pos, dtype=outs.dtype)[0]
|
1250
1254
|
|
1251
1255
|
|
1256
|
+
def keep_components_with_positive_points(
|
1257
|
+
img: torch.Tensor, point_coords: torch.Tensor, point_labels: torch.Tensor
|
1258
|
+
) -> torch.Tensor:
|
1259
|
+
"""
|
1260
|
+
Keep connected regions that include the positive points. Used for point-only inference postprocessing to remove
|
1261
|
+
regions without positive points.
|
1262
|
+
Args:
|
1263
|
+
img: [1, B, H, W, D]. Output prediction from VISTA3D. Value is before sigmoid and contain NaN value.
|
1264
|
+
point_coords: [B, N, 3]. Point click coordinates
|
1265
|
+
point_labels: [B, N]. Point click labels.
|
1266
|
+
"""
|
1267
|
+
if not has_measure:
|
1268
|
+
raise RuntimeError("skimage.measure required.")
|
1269
|
+
outs = torch.zeros_like(img)
|
1270
|
+
for c in range(len(point_coords)):
|
1271
|
+
if not ((point_labels[c] == 3).any() or (point_labels[c] == 1).any()):
|
1272
|
+
# skip if no positive points.
|
1273
|
+
continue
|
1274
|
+
coords = point_coords[c, point_labels[c] == 3].tolist() + point_coords[c, point_labels[c] == 1].tolist()
|
1275
|
+
not_nan_mask = ~torch.isnan(img[0, c])
|
1276
|
+
img_ = torch.nan_to_num(img[0, c] > 0, 0)
|
1277
|
+
img_, *_ = convert_data_type(img_, np.ndarray) # type: ignore
|
1278
|
+
label = measure.label
|
1279
|
+
features = label(img_, connectivity=3)
|
1280
|
+
pos_mask = torch.from_numpy(img_).to(img.device) > 0
|
1281
|
+
# if num features less than max desired, nothing to do.
|
1282
|
+
features = torch.from_numpy(features).to(img.device)
|
1283
|
+
# generate a map with all pos points
|
1284
|
+
idx = []
|
1285
|
+
for p in coords:
|
1286
|
+
idx.append(features[round(p[0]), round(p[1]), round(p[2])].item())
|
1287
|
+
idx = list(set(idx))
|
1288
|
+
for i in idx:
|
1289
|
+
if i == 0:
|
1290
|
+
continue
|
1291
|
+
outs[0, c] += features == i
|
1292
|
+
outs = outs > 0
|
1293
|
+
# find negative mean value
|
1294
|
+
fill_in = img[0, c][torch.logical_and(~outs[0, c], not_nan_mask)].mean()
|
1295
|
+
img[0, c][torch.logical_and(pos_mask, ~outs[0, c])] = fill_in
|
1296
|
+
return img
|
1297
|
+
|
1298
|
+
|
1252
1299
|
def convert_points_to_disc(
|
1253
1300
|
image_size: Sequence[int], point: Tensor, point_label: Tensor, radius: int = 2, disc: bool = False
|
1254
1301
|
):
|
@@ -1269,7 +1316,7 @@ def convert_points_to_disc(
|
|
1269
1316
|
_array = [
|
1270
1317
|
torch.arange(start=0, end=image_size[i], step=1, dtype=torch.float32, device=point.device) for i in range(3)
|
1271
1318
|
]
|
1272
|
-
coord_rows, coord_cols, coord_z = torch.meshgrid(_array[
|
1319
|
+
coord_rows, coord_cols, coord_z = torch.meshgrid(_array[0], _array[1], _array[2])
|
1273
1320
|
# [1, 3, h, w, d] -> [b, 2, 3, h, w, d]
|
1274
1321
|
coords = unsqueeze_left(torch.stack((coord_rows, coord_cols, coord_z), dim=0), 6)
|
1275
1322
|
coords = coords.repeat(point.shape[0], 2, 1, 1, 1, 1)
|
@@ -1816,7 +1863,7 @@ class Fourier:
|
|
1816
1863
|
"""
|
1817
1864
|
|
1818
1865
|
@staticmethod
|
1819
|
-
def shift_fourier(x: NdarrayOrTensor, spatial_dims: int) -> NdarrayOrTensor:
|
1866
|
+
def shift_fourier(x: NdarrayOrTensor, spatial_dims: int, as_contiguous: bool = False) -> NdarrayOrTensor:
|
1820
1867
|
"""
|
1821
1868
|
Applies fourier transform and shifts the zero-frequency component to the
|
1822
1869
|
center of the spectrum. Only the spatial dimensions get transformed.
|
@@ -1824,6 +1871,7 @@ class Fourier:
|
|
1824
1871
|
Args:
|
1825
1872
|
x: Image to transform.
|
1826
1873
|
spatial_dims: Number of spatial dimensions.
|
1874
|
+
as_contiguous: Whether to convert the cached NumPy array or PyTorch tensor to be contiguous.
|
1827
1875
|
|
1828
1876
|
Returns
|
1829
1877
|
k: K-space data.
|
@@ -1838,10 +1886,12 @@ class Fourier:
|
|
1838
1886
|
k = np.fft.fftshift(np.fft.fftn(x.cpu().numpy(), axes=dims), axes=dims)
|
1839
1887
|
else:
|
1840
1888
|
k = np.fft.fftshift(np.fft.fftn(x, axes=dims), axes=dims)
|
1841
|
-
return k
|
1889
|
+
return ascontiguousarray(k) if as_contiguous else k
|
1842
1890
|
|
1843
1891
|
@staticmethod
|
1844
|
-
def inv_shift_fourier(
|
1892
|
+
def inv_shift_fourier(
|
1893
|
+
k: NdarrayOrTensor, spatial_dims: int, n_dims: int | None = None, as_contiguous: bool = False
|
1894
|
+
) -> NdarrayOrTensor:
|
1845
1895
|
"""
|
1846
1896
|
Applies inverse shift and fourier transform. Only the spatial
|
1847
1897
|
dimensions are transformed.
|
@@ -1849,6 +1899,7 @@ class Fourier:
|
|
1849
1899
|
Args:
|
1850
1900
|
k: K-space data.
|
1851
1901
|
spatial_dims: Number of spatial dimensions.
|
1902
|
+
as_contiguous: Whether to convert the cached NumPy array or PyTorch tensor to be contiguous.
|
1852
1903
|
|
1853
1904
|
Returns:
|
1854
1905
|
x: Tensor in image space.
|
@@ -1863,7 +1914,7 @@ class Fourier:
|
|
1863
1914
|
out = np.fft.ifftn(np.fft.ifftshift(k.cpu().numpy(), axes=dims), axes=dims).real
|
1864
1915
|
else:
|
1865
1916
|
out = np.fft.ifftn(np.fft.ifftshift(k, axes=dims), axes=dims).real
|
1866
|
-
return out
|
1917
|
+
return ascontiguousarray(out) if as_contiguous else out
|
1867
1918
|
|
1868
1919
|
|
1869
1920
|
def get_number_image_type_conversions(transform: Compose, test_data: Any, key: Hashable | None = None) -> int:
|
@@ -2467,6 +2518,7 @@ def distance_transform_edt(
|
|
2467
2518
|
block_params=block_params,
|
2468
2519
|
float64_distances=float64_distances,
|
2469
2520
|
)
|
2521
|
+
torch.cuda.synchronize()
|
2470
2522
|
else:
|
2471
2523
|
if not has_ndimage:
|
2472
2524
|
raise RuntimeError("scipy.ndimage required if cupy is not available")
|
@@ -2500,7 +2552,7 @@ def distance_transform_edt(
|
|
2500
2552
|
|
2501
2553
|
r_vals = []
|
2502
2554
|
if return_distances and distances_original is None:
|
2503
|
-
r_vals.append(distances)
|
2555
|
+
r_vals.append(distances_ if use_cp else distances)
|
2504
2556
|
if return_indices and indices_original is None:
|
2505
2557
|
r_vals.append(indices)
|
2506
2558
|
if not r_vals:
|
@@ -2509,5 +2561,26 @@ def distance_transform_edt(
|
|
2509
2561
|
return convert_data_type(r_vals[0] if len(r_vals) == 1 else r_vals, output_type=type(img), device=device)[0]
|
2510
2562
|
|
2511
2563
|
|
2564
|
+
def apply_affine_to_points(data: torch.Tensor, affine: torch.Tensor, dtype: DtypeLike | torch.dtype | None = None):
|
2565
|
+
"""
|
2566
|
+
apply affine transformation to a set of points.
|
2567
|
+
|
2568
|
+
Args:
|
2569
|
+
data: input data to apply affine transformation, should be a tensor of shape (C, N, 2 or 3),
|
2570
|
+
where C represents the number of channels and N denotes the number of points.
|
2571
|
+
affine: affine matrix to be applied, should be a tensor of shape (3, 3) or (4, 4).
|
2572
|
+
dtype: output data dtype.
|
2573
|
+
"""
|
2574
|
+
data_: torch.Tensor = convert_to_tensor(data, track_meta=False, dtype=torch.float64)
|
2575
|
+
affine = to_affine_nd(data_.shape[-1], affine)
|
2576
|
+
|
2577
|
+
homogeneous: torch.Tensor = concatenate((data_, torch.ones((data_.shape[0], data_.shape[1], 1))), axis=2) # type: ignore
|
2578
|
+
transformed_homogeneous = torch.matmul(homogeneous, affine.T)
|
2579
|
+
transformed_coordinates = transformed_homogeneous[:, :, :-1]
|
2580
|
+
out, *_ = convert_to_dst_type(transformed_coordinates, data, dtype=dtype)
|
2581
|
+
|
2582
|
+
return out
|
2583
|
+
|
2584
|
+
|
2512
2585
|
if __name__ == "__main__":
|
2513
2586
|
print_transform_backends()
|
monai/utils/__init__.py
CHANGED
monai/utils/enums.py
CHANGED
@@ -543,6 +543,7 @@ class MetaKeys(StrEnum):
|
|
543
543
|
SPATIAL_SHAPE = "spatial_shape" # optional key for the length in each spatial dimension
|
544
544
|
SPACE = "space" # possible values of space type are defined in `SpaceKeys`
|
545
545
|
ORIGINAL_CHANNEL_DIM = "original_channel_dim" # an integer or float("nan")
|
546
|
+
SAVED_TO = "saved_to"
|
546
547
|
|
547
548
|
|
548
549
|
class ColorOrder(StrEnum):
|
monai/utils/type_conversion.py
CHANGED
@@ -33,6 +33,7 @@ __all__ = [
|
|
33
33
|
"get_equivalent_dtype",
|
34
34
|
"convert_data_type",
|
35
35
|
"get_dtype",
|
36
|
+
"get_dtype_string",
|
36
37
|
"convert_to_cupy",
|
37
38
|
"convert_to_numpy",
|
38
39
|
"convert_to_tensor",
|
@@ -102,6 +103,13 @@ def get_dtype(data: Any) -> DtypeLike | torch.dtype:
|
|
102
103
|
return type(data)
|
103
104
|
|
104
105
|
|
106
|
+
def get_dtype_string(dtype: DtypeLike | torch.dtype) -> str:
|
107
|
+
"""Get a string representation of the dtype."""
|
108
|
+
if isinstance(dtype, torch.dtype):
|
109
|
+
return str(dtype)[6:]
|
110
|
+
return str(dtype)[3:]
|
111
|
+
|
112
|
+
|
105
113
|
def convert_to_tensor(
|
106
114
|
data: Any,
|
107
115
|
dtype: DtypeLike | torch.dtype = None,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: monai-weekly
|
3
|
-
Version: 1.4.
|
3
|
+
Version: 1.4.dev2436
|
4
4
|
Summary: AI Toolkit for Healthcare Imaging
|
5
5
|
Home-page: https://monai.io/
|
6
6
|
Author: MONAI Consortium
|
@@ -120,6 +120,8 @@ Provides-Extra: pandas
|
|
120
120
|
Requires-Dist: pandas; extra == "pandas"
|
121
121
|
Provides-Extra: pillow
|
122
122
|
Requires-Dist: pillow!=8.3.0; extra == "pillow"
|
123
|
+
Provides-Extra: polygraphy
|
124
|
+
Requires-Dist: polygraphy; extra == "polygraphy"
|
123
125
|
Provides-Extra: psutil
|
124
126
|
Requires-Dist: psutil; extra == "psutil"
|
125
127
|
Provides-Extra: pyamg
|
@@ -167,6 +169,7 @@ Requires-Dist: zarr; extra == "zarr"
|
|
167
169
|
[](https://github.com/Project-MONAI/MONAI/actions?query=branch%3Adev)
|
168
170
|
[](https://docs.monai.io/en/latest/)
|
169
171
|
[](https://codecov.io/gh/Project-MONAI/MONAI)
|
172
|
+
[](https://piptrends.com/package/monai)
|
170
173
|
|
171
174
|
MONAI is a [PyTorch](https://pytorch.org/)-based, [open-source](https://github.com/Project-MONAI/MONAI/blob/dev/LICENSE) framework for deep learning in healthcare imaging, part of [PyTorch Ecosystem](https://pytorch.org/ecosystem/).
|
172
175
|
Its ambitions are:
|
@@ -1,5 +1,5 @@
|
|
1
|
-
monai/__init__.py,sha256=
|
2
|
-
monai/_version.py,sha256=
|
1
|
+
monai/__init__.py,sha256=os-5c-6EJQZgLKBLDAW6HyzE8TU11Q8YOlzvi0uFhAY,4094
|
2
|
+
monai/_version.py,sha256=Pd6fVGXo0VC8INb4qwrDi1QPxFBumw4V1fXa5Rmpslw,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
|
@@ -52,7 +52,6 @@ monai/apps/generation/maisi/networks/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30
|
|
52
52
|
monai/apps/generation/maisi/networks/autoencoderkl_maisi.py,sha256=Jbj5w9_p_xOLWYgfta26H22zgcC01BR4dmRmDdi13EU,36695
|
53
53
|
monai/apps/generation/maisi/networks/controlnet_maisi.py,sha256=jaTbpvttLybOq6KzC64CQl92BhlOi39zD48Zkdb7zBE,7698
|
54
54
|
monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py,sha256=XFOiy6GngXC_OKM1dUiel_gp71yUFWgPErYdgrVLQAU,19072
|
55
|
-
monai/apps/generation/maisi/utils/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
56
55
|
monai/apps/mmars/__init__.py,sha256=BolpgEi9jNBgrOQd3Kwp-9QQLeWQwQtlN_MJkK1eu5s,726
|
57
56
|
monai/apps/mmars/mmars.py,sha256=AYsx5FDmJ0dT0hAkWGYhM470aPIG23PYloHihDZfOKE,13115
|
58
57
|
monai/apps/mmars/model_desc.py,sha256=k7WSMRuyQN8xPax8aUmGKiTNZmcVatdqPYCgxDih-x4,9996
|
@@ -99,6 +98,10 @@ monai/apps/reconstruction/transforms/dictionary.py,sha256=3NGkie0WYZdsWWx1_h9Orr
|
|
99
98
|
monai/apps/tcia/__init__.py,sha256=2uu3nP1j3mDs2AeG-9zmXicD33eQs1g0VHCN8KysEbQ,824
|
100
99
|
monai/apps/tcia/label_desc.py,sha256=B8l9mVmRzLysLmEIIYVeenly_68okCt461qeLQSxCJ8,1582
|
101
100
|
monai/apps/tcia/utils.py,sha256=iyLXr5_51rolbRUZFN_Fwc6TIhAbeSl6XZ2m5RYpzTw,6303
|
101
|
+
monai/apps/vista3d/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
102
|
+
monai/apps/vista3d/inferer.py,sha256=3WgXF2ELPhoHt13jFYOlfEss1031Gr2_Fm5_gUy6hLc,8712
|
103
|
+
monai/apps/vista3d/sampler.py,sha256=1uZQIRCO9HY8Rs2FtZ1v0XtPQGZ9RyEjxUycMgIqx7A,8274
|
104
|
+
monai/apps/vista3d/transforms.py,sha256=SLsVVRJty5R8X2oeeyPUQCej83__3yKv8qvAUpGxr3s,10641
|
102
105
|
monai/auto3dseg/__init__.py,sha256=DbZC7wqx4zBNcguLQGu8bGmAiKnk9LvjtQDtwdwG19I,1164
|
103
106
|
monai/auto3dseg/algo_gen.py,sha256=_BscoAnUzQKRqz5jHvdsuCe3tTxq7PUQYPMLX0WuxCc,4286
|
104
107
|
monai/auto3dseg/analyzer.py,sha256=7l8QT36lG68b8rK23CC2omz6PO1fxmDwOljxXMn5clQ,41351
|
@@ -108,11 +111,11 @@ monai/auto3dseg/utils.py,sha256=zEicEO_--6-1kzT5HlmhAAd575gnl2AFmW8O3FnIznE,1867
|
|
108
111
|
monai/bundle/__init__.py,sha256=xvYgiAzq9fiyMkCRo0vwn41ZSzj0udyvF0jmySnqBRI,1443
|
109
112
|
monai/bundle/__main__.py,sha256=RiAn6raPUvPMfXvd03irAhB3nkIAgG1lf8GE34PG4Js,952
|
110
113
|
monai/bundle/config_item.py,sha256=rMjXSGkjJZdi04BwSHwCcIwzIb_TflmC3xDhC3SVJRs,16151
|
111
|
-
monai/bundle/config_parser.py,sha256=
|
114
|
+
monai/bundle/config_parser.py,sha256=cGyEn-cqNk0rEEZ1Qiv6UydmIDvtWZcMVljyfVm5i50,23025
|
112
115
|
monai/bundle/properties.py,sha256=iN3K4FVmN9ny1Hw9p5j7_ULcCdSD8PmrR7qXxbNz49k,11582
|
113
116
|
monai/bundle/reference_resolver.py,sha256=aBw3ML7B_YsiFUNl_mcRYPry1UbrEIK0R39A0zFw8kI,16463
|
114
|
-
monai/bundle/scripts.py,sha256=
|
115
|
-
monai/bundle/utils.py,sha256=
|
117
|
+
monai/bundle/scripts.py,sha256=EmYZ4-Wc-qzYqwSwkT2LcmPtkbR53HLrBRM3GXH511U,89086
|
118
|
+
monai/bundle/utils.py,sha256=t-22uFvLn7Yy-dr1v1U33peNOxgAmU4TJiGAbsBrUKs,10108
|
116
119
|
monai/bundle/workflows.py,sha256=VMuBTkk6DGsnGRLFzNfVUzgy8UqUReluUlIPUaxODPQ,24765
|
117
120
|
monai/config/__init__.py,sha256=CN28CfTdsp301gv8YXfVvkbztCfbAqrLKrJi_C8oP9s,1048
|
118
121
|
monai/config/deviceconfig.py,sha256=3EU1Zi6yD_bxEAeHfzjbslEjq6vOvxNG6o9dxKUiEvc,10315
|
@@ -157,7 +160,7 @@ monai/fl/utils/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,57
|
|
157
160
|
monai/fl/utils/constants.py,sha256=OjMAE17niYqQh7nz45SC6CXvkMa4-XZsIuoHUHqP7W0,1784
|
158
161
|
monai/fl/utils/exchange_object.py,sha256=q41trOwBdog_g3k_Eh2EFnLufHJ1mj7nGyQ-ShuW5Mo,3527
|
159
162
|
monai/fl/utils/filters.py,sha256=InXplYes52JJqtsNbePAPPAYS8am_uRO7UkBHyYyJCo,1633
|
160
|
-
monai/handlers/__init__.py,sha256=
|
163
|
+
monai/handlers/__init__.py,sha256=DDEga7fRfhZTn7T7ZDjK1XI6zcDsziTJLpM50wqwacY,2408
|
161
164
|
monai/handlers/checkpoint_loader.py,sha256=d01Ab5RIMuP372M1rwarKpdhcIG01Vv7Z630iwb4PlY,7456
|
162
165
|
monai/handlers/checkpoint_saver.py,sha256=NJljfsP_RbmeQvbI9g0B0hsPcV14vW37cljGRzLlXCY,16071
|
163
166
|
monai/handlers/classification_saver.py,sha256=ujCzHyEN5lH-ZY_M5cN-J6s_JxByLkujxcTz2ZVxHow,7606
|
@@ -187,13 +190,14 @@ monai/handlers/smartcache_handler.py,sha256=OA6v4EC2geH419eBKSAGSb-XNxO_qSPmJ2fk
|
|
187
190
|
monai/handlers/stats_handler.py,sha256=SyHXYnKXyQhaXDM08_yUU7gFQEICHrnLYtOl7vcmA3s,14126
|
188
191
|
monai/handlers/surface_distance.py,sha256=HKQrRGy08uWNr9X-mJ1IhMwV_ndZOijEJS7TYL9KQsg,3327
|
189
192
|
monai/handlers/tensorboard_handlers.py,sha256=FvuK2Ymc9oBoGJQYUcUxBKVNU6a_I5agUXUUgNfIvYM,22615
|
193
|
+
monai/handlers/trt_handler.py,sha256=6vrF70jwCrICGjB56RiQ7lg2NNyQl5ZbHx4V7Ygle1Q,2353
|
190
194
|
monai/handlers/utils.py,sha256=IXdBBGlQ0rwBeTlFKE1br4Mq42zcAvFgSF7RPg-yAiU,10239
|
191
195
|
monai/handlers/validation_handler.py,sha256=8UicJSkRhJZh7RuK07isiLii_6WpN3AclrbqtV4ny6M,3698
|
192
196
|
monai/inferers/__init__.py,sha256=K74t_RCeUPdEZvHzIPzVAwZ9DtmouLqhb3qDEmFBWs4,1107
|
193
197
|
monai/inferers/inferer.py,sha256=aZwCmM6WGj49SHi_jIkQeGDstMz45frvM1Lomoeqzm4,92669
|
194
198
|
monai/inferers/merger.py,sha256=Ch-qoGUVTTDWN9z_LXBRxElvyuZxOmuqAcecpg1xxAg,15566
|
195
199
|
monai/inferers/splitter.py,sha256=_hTnFdvDNRckkA7ZGQehVsNZw83oXoGFWyk5VXNqgJg,21149
|
196
|
-
monai/inferers/utils.py,sha256=
|
200
|
+
monai/inferers/utils.py,sha256=hKiudomhQL9mbcq1rVWRpRy55Fz1bCD5egv4J3QgLNQ,20432
|
197
201
|
monai/losses/__init__.py,sha256=igy7BjoQzM3McmJPD2tmeiW2ljSXfB2HBdc4YiDzYEg,1778
|
198
202
|
monai/losses/adversarial_loss.py,sha256=9w47lPYU3clj2w9UZ_ZcXCKnmlMfA74YkjFOCVfhF0E,7722
|
199
203
|
monai/losses/barlow_twins.py,sha256=prDdaY0vXAXMuVDmc9Tv6svRZzNwKA0LdsmRaUmusiI,3613
|
@@ -222,7 +226,7 @@ monai/metrics/cumulative_average.py,sha256=8GGjHmiBboBikprg1380SsNn7RgzFIrHGWBYD
|
|
222
226
|
monai/metrics/f_beta_score.py,sha256=urI0J_tvl0qQ5-l2fgWV_jChbgpzLmgpRq125B3yxpw,3984
|
223
227
|
monai/metrics/fid.py,sha256=P9wBKnumEdCgKlVUuEt9XzY5umPK1fXnnyXmljDl5N4,4794
|
224
228
|
monai/metrics/froc.py,sha256=q7MAFsHHIp5EHBHwa5UbF5PRApjUonw-hUXax9k1WxQ,7981
|
225
|
-
monai/metrics/generalized_dice.py,sha256=
|
229
|
+
monai/metrics/generalized_dice.py,sha256=9ZiEmGfMZLxFAF6AmdrbKOc8A_QOUMUmIZ6ILm-h01A,8939
|
226
230
|
monai/metrics/hausdorff_distance.py,sha256=4_ZJZ2gV1bPhOR5Mxz0PyN6Y_X1mTZ6U6T4gSRwjfDE,11844
|
227
231
|
monai/metrics/loss_metric.py,sha256=m9jXobVHKLeDY_8yrA9m7FwfapSAb-kYIdUJOsbvBvY,4907
|
228
232
|
monai/metrics/meandice.py,sha256=bFiDcK-af4cqV-JHAO2Qh2ixwj6fLjaBCaCO6jBAmxQ,13475
|
@@ -236,8 +240,9 @@ monai/metrics/surface_dice.py,sha256=aNERsTuJkPMfxatPaAzoW1KtvZvUAv4qe_7Kl_dOROI
|
|
236
240
|
monai/metrics/surface_distance.py,sha256=bKDTm7ulhjfiphHLrDJoA3OKI3npwQy2Z5wY-JkXtXg,9727
|
237
241
|
monai/metrics/utils.py,sha256=jJiIFGGa-iwvz1otHAKqPKTNmfZqd2dI7_Hsfblgxqk,46914
|
238
242
|
monai/metrics/wrapper.py,sha256=c1zg-xcypQyZ840TEuhhLgr4sClYMWTxlv1OieJTtvE,11781
|
239
|
-
monai/networks/__init__.py,sha256=
|
240
|
-
monai/networks/
|
243
|
+
monai/networks/__init__.py,sha256=ZzU2Qo8gDXNiRBF0JapIo3xlecZHjXsJuarF0IKVKKY,1086
|
244
|
+
monai/networks/trt_compiler.py,sha256=xWCstyDnsNj1tB-oRIr0SS0hz_eKXvbILmh94k5MC1Y,22680
|
245
|
+
monai/networks/utils.py,sha256=YKcmGoBM2UrnstleRcascn-C97n2e3LPL8tlEFcPiWQ,56860
|
241
246
|
monai/networks/blocks/__init__.py,sha256=-LMGPMN-eHzwsjkb88H66kImpr4v2hYATZ2y-mRm_K0,2264
|
242
247
|
monai/networks/blocks/acti_norm.py,sha256=bVGXbTZ_ssRvmED5R7LOQ7jj4V6WbVFl8JMO-4iZ2Dk,4275
|
243
248
|
monai/networks/blocks/activation.py,sha256=S5k3zcP2PsHBkeIxgWgNg8ppW80tTResVP2j9ZsvTFw,5839
|
@@ -276,7 +281,7 @@ monai/networks/layers/conjugate_gradient.py,sha256=kCAwjtX_j5wrgR8x52WdGl4yCwZmc
|
|
276
281
|
monai/networks/layers/convutils.py,sha256=zwbYK4WJO1Tj2KASnOfxwYnb3p4pizXxdZRm6I1P3j4,8288
|
277
282
|
monai/networks/layers/drop_path.py,sha256=SZtRNa1bDwk1rXWbUe70YDaw6H_NKeplm_Wk5Ye1L4Y,1802
|
278
283
|
monai/networks/layers/factories.py,sha256=dMj-y3LRV5P_FmqMCZuf_A8P8l_fge3TVAXWzNhONuo,15795
|
279
|
-
monai/networks/layers/filtering.py,sha256=
|
284
|
+
monai/networks/layers/filtering.py,sha256=294TaEF_oF-IuL7NQzh64iwW28bRezbPGwp9KynP_ks,18215
|
280
285
|
monai/networks/layers/gmm.py,sha256=Aq-YCHgUalgOZQ0x5mwYKJe1G7aiCiJybdkPTiiT120,3325
|
281
286
|
monai/networks/layers/simplelayers.py,sha256=ciUdKrj_DpEdT3AKs70aPySh73UMsyhoOCTiR2qk8Js,28478
|
282
287
|
monai/networks/layers/spatial_transforms.py,sha256=fz2t7-ibijNLqTYpAn4ZgdXtzBSIyWlaF35mQtqWRY4,25581
|
@@ -317,14 +322,14 @@ monai/networks/nets/senet.py,sha256=gulqPMYmSABbMbN39NElGzSU1TKGviJas7EPTBaZ60A,
|
|
317
322
|
monai/networks/nets/spade_autoencoderkl.py,sha256=-b2Sbl4jPpwo3ukTgsTcON26cSTB35K9sy1S9DKlZz0,19566
|
318
323
|
monai/networks/nets/spade_diffusion_model_unet.py,sha256=zYsXhkHNpHWWyal5ljAMxOICJ1loYQQMAOuzWzdLBCM,39007
|
319
324
|
monai/networks/nets/spade_network.py,sha256=GguYucjIRyT_rZa9DrvUmv00FtqXHZtY1VfJM9Rygns,16479
|
320
|
-
monai/networks/nets/swin_unetr.py,sha256=
|
325
|
+
monai/networks/nets/swin_unetr.py,sha256=nU_VgVsgPnXx5V_Wtceq1ZJR1XuB4vPCcFnbY5pJOZ0,44902
|
321
326
|
monai/networks/nets/torchvision_fc.py,sha256=3g5PD7C1MSkQ8xndhnVd0b3aN8zfshT8uiFS0OHyQaY,6309
|
322
327
|
monai/networks/nets/transchex.py,sha256=uA_RfTDfPhwA1ecAPZ9EDnMyJKn2tUMLEWdyB_rU2v0,15726
|
323
328
|
monai/networks/nets/transformer.py,sha256=-nzl20Z5xdtn7xChOd_cRbbPVoPIFGVfTQw3fIEGMuE,6395
|
324
329
|
monai/networks/nets/unet.py,sha256=riKWB8iEEgO4CIiVTOo532726HWWBfuBcIHeoLvvN0w,13627
|
325
330
|
monai/networks/nets/unetr.py,sha256=wQC3mpn_jEcZb0RXef0ueTe4WGjmnZqQVKKdnemFjnc,8545
|
326
331
|
monai/networks/nets/varautoencoder.py,sha256=Pd9BdXW1iVjmAVCZIc2ElGtSDAWRBaLwEKxLDicyxZI,6282
|
327
|
-
monai/networks/nets/vista3d.py,sha256=
|
332
|
+
monai/networks/nets/vista3d.py,sha256=vFpCG53JDCvgK-fz7VPZvo6-mv8Mp5AgBZu2QVu0ggM,43326
|
328
333
|
monai/networks/nets/vit.py,sha256=SJ5MCJcVAQ2iTqkc1-AFF7oBgCkE7xcNr_ziGc8n_t8,6250
|
329
334
|
monai/networks/nets/vitautoenc.py,sha256=tTX-JHNl2H4y9e5Wk9rrtR6i_ebJHq90O61DnbBFhek,6033
|
330
335
|
monai/networks/nets/vnet.py,sha256=zaJi5kSiTLAuFHThSZfhJvHP6zKh3oBWsTWG-328O_g,10820
|
@@ -340,7 +345,7 @@ monai/optimizers/lr_finder.py,sha256=tbVi6qd-LLI6pENM9cDUv-Hh1HqziO3Wb9aI6JoaPng
|
|
340
345
|
monai/optimizers/lr_scheduler.py,sha256=YPY5MWgCTmExuIOBsVJrgfErkCT1ELBekcH0XeRP6Kk,4082
|
341
346
|
monai/optimizers/novograd.py,sha256=dgjyM-WGqrEHsSKNdI3Lw1wJ2YNG3oKCYotfPsDBE80,5677
|
342
347
|
monai/optimizers/utils.py,sha256=GVsJsZWO2aAP9IzwhXgca_9gUNHFClup6qG4ZFs42z4,4133
|
343
|
-
monai/transforms/__init__.py,sha256=
|
348
|
+
monai/transforms/__init__.py,sha256=lyIf64v-I2soIjfK2RxOWS7_CIc-x6bRJHLI6UZ8yDs,16591
|
344
349
|
monai/transforms/adaptors.py,sha256=jqh7cVvIj4h7-UndP7CNuwxgIUXWY_5kiMzjGC5jFBs,8950
|
345
350
|
monai/transforms/compose.py,sha256=zQa_hf8gIater3Bo_XW1IVYgX7aFa_Co6-BZPwoeaQw,37663
|
346
351
|
monai/transforms/inverse.py,sha256=Wg8UnMJru41G3eHGipUemAWziHGU-qdd-Flfi3eOpeo,18746
|
@@ -348,7 +353,7 @@ monai/transforms/inverse_batch_transform.py,sha256=fMbukZq2P99BhqqMuWZFJ9uboZ5dN
|
|
348
353
|
monai/transforms/nvtx.py,sha256=1EKEXZIhTUFKoIrJmd_fevwrHwo731dVFUFJQFiOk3w,3386
|
349
354
|
monai/transforms/traits.py,sha256=F8kmhnekTyaAdo8wIFjO3-uqpVtmFym3mNxbYbyvkFI,3563
|
350
355
|
monai/transforms/transform.py,sha256=DqWyfuI-FDBxjqern33R6Ia1iAfHb3Kh56u-__tp1Kw,21614
|
351
|
-
monai/transforms/utils.py,sha256=
|
356
|
+
monai/transforms/utils.py,sha256=rqGsrUhmBDYDox5J-6UVBeVOxDwQyJ6huv58VYXc9iU,106449
|
352
357
|
monai/transforms/utils_create_transform_ims.py,sha256=QEJVHsCZX7ZxsBArk6NjgCzSZuuokf8l1uFqiUZBBys,31155
|
353
358
|
monai/transforms/utils_morphological_ops.py,sha256=abaFYSvCfH4k7jk3R_YLtUxgwRYgsz6zj6sOEGM1K5w,6758
|
354
359
|
monai/transforms/utils_pytorch_numpy_unification.py,sha256=PvNO1QeBLTcpLhvuO25ctGr2nIM4B0sTRvnA5TpxJ4Q,18855
|
@@ -361,8 +366,8 @@ monai/transforms/intensity/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJ
|
|
361
366
|
monai/transforms/intensity/array.py,sha256=bhKIAMgJu-QMQA8df9QdyancMJMShOIOGHjE__4XdXo,121574
|
362
367
|
monai/transforms/intensity/dictionary.py,sha256=RXZeQG9dPvdvjoiWWlNkYec4NDWBxYXjfct4fywv1Ic,85059
|
363
368
|
monai/transforms/io/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
364
|
-
monai/transforms/io/array.py,sha256=
|
365
|
-
monai/transforms/io/dictionary.py,sha256=
|
369
|
+
monai/transforms/io/array.py,sha256=z4aOxK44IhztN-LzG2uROYDwg_u1C6gcpx9ZH-ZhoVA,27482
|
370
|
+
monai/transforms/io/dictionary.py,sha256=64M9KUsKyzwXopDcarXT7JKIv9rHP8Ae-fYRvI0yBuM,18716
|
366
371
|
monai/transforms/lazy/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
367
372
|
monai/transforms/lazy/array.py,sha256=2jNLmQ3_sMX7DdbfcT3Extpwe5FgOBbbz2RqlDlyNcw,1211
|
368
373
|
monai/transforms/lazy/dictionary.py,sha256=bgpZ5CPh5rjdf1T5eQVqxlLh0B57xTWHWaBUUxiQAu4,1571
|
@@ -383,19 +388,19 @@ monai/transforms/smooth_field/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6F
|
|
383
388
|
monai/transforms/smooth_field/array.py,sha256=Pz4ErmcfVTRZpBe4_IAXTWHlGSmRfExegNKYyrSVwsE,17856
|
384
389
|
monai/transforms/smooth_field/dictionary.py,sha256=iU4V2VjSy2H1K03KgumMUr3cyZVWEJS0W-tgc6SZtP4,11194
|
385
390
|
monai/transforms/spatial/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
386
|
-
monai/transforms/spatial/array.py,sha256=
|
387
|
-
monai/transforms/spatial/dictionary.py,sha256=
|
388
|
-
monai/transforms/spatial/functional.py,sha256=
|
391
|
+
monai/transforms/spatial/array.py,sha256=oVNAdkr_XQqwQgf-67n7zpBQCvrMW2SZBKTrqtj08hw,184943
|
392
|
+
monai/transforms/spatial/dictionary.py,sha256=t0SvEDSVNFUEw2fK66OVF20sqSzCNxil17HmvsMFBt8,133752
|
393
|
+
monai/transforms/spatial/functional.py,sha256=IwS0witCqbGkyuxzu_R4Ztp90S0pg9hY1irG7feXqig,33886
|
389
394
|
monai/transforms/utility/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
390
|
-
monai/transforms/utility/array.py,sha256=
|
391
|
-
monai/transforms/utility/dictionary.py,sha256=
|
392
|
-
monai/utils/__init__.py,sha256=
|
395
|
+
monai/transforms/utility/array.py,sha256=MCkoccxLStPX2e0bJv6WZzDsGE3Wwf1DaxU1MZwDp08,78086
|
396
|
+
monai/transforms/utility/dictionary.py,sha256=bPO6qJcZwT_phtVpTLT0VvblGL-QnyYG1bYGIpAjOzk,78079
|
397
|
+
monai/utils/__init__.py,sha256=_ey7G8xkthTk2OdQoFFglYFPlqL9cCxkS3flyb3TYTU,3779
|
393
398
|
monai/utils/aliases.py,sha256=uBxkLudRfy3Rts9RZo4NDPGoq4e3Ymcaihk6lT92GFo,4096
|
394
399
|
monai/utils/component_store.py,sha256=VMF7CtPu5Wi_eX_qFtm9iWo5kvoWFuCUIxdRzk90zZo,4498
|
395
400
|
monai/utils/decorators.py,sha256=YRK5iEMdbc2INrWnBNDSMTaHge_0ezRf2b9yJGL-opg,3129
|
396
401
|
monai/utils/deprecate_utils.py,sha256=gKeEV4MsI51qeQ5gci2me_C-0e-tDwa3VZzd3XPQqLk,14759
|
397
402
|
monai/utils/dist.py,sha256=mVaKlBTQJdWAG910sh5pGLEbb_KhRAXV5cPz7amH88Y,8639
|
398
|
-
monai/utils/enums.py,sha256=
|
403
|
+
monai/utils/enums.py,sha256=f__RhrrG4cxxzmICHnmM9riiCvsmUIIk9fYN12Q33lE,19700
|
399
404
|
monai/utils/jupyter_utils.py,sha256=QqcKhJxzEf6YwM8Ik_HvfVDr7gNfrfzCXdzd2urEH8M,15651
|
400
405
|
monai/utils/misc.py,sha256=GJIDxr42juFjnzUTvLtYndcpBQ-EDz6EVXIc7anBoNo,31380
|
401
406
|
monai/utils/module.py,sha256=D9KWFrZ8sS2LrGaLzHnw9MMEbrPI9pHHfHc0XrTLob0,25105
|
@@ -404,7 +409,7 @@ monai/utils/ordering.py,sha256=0nlA5b5QpVCHbtiCbTC-YsqjTmjm0bub0IeJhGFBOes,8270
|
|
404
409
|
monai/utils/profiling.py,sha256=V2_cSHgrcmVF48_G3nUi2-O6fnXsS89nSlb8jj58YLo,15937
|
405
410
|
monai/utils/state_cacher.py,sha256=ERBE-mnnf47MwKSq-pNbfu1D2C4ZqKH-mORyLaBa3EE,5955
|
406
411
|
monai/utils/tf32.py,sha256=4bqpPxoTAMmQDNRbbrd4qHG27e1RrxeAmfDf3vP8tQc,3141
|
407
|
-
monai/utils/type_conversion.py,sha256=
|
412
|
+
monai/utils/type_conversion.py,sha256=fj1mUWf-5WBv9m-fpe8gjcGljGBGSA8-RppBpKD_wv0,21754
|
408
413
|
monai/visualize/__init__.py,sha256=p7dv9-hRa9vAhlpHyk86yap9HgeDeJRO3pXmFhDx8Mc,1038
|
409
414
|
monai/visualize/class_activation_maps.py,sha256=5eEQkmpcE3QpivadjlsRZBLcUc7NpJHDfWkKCLOAnUM,16288
|
410
415
|
monai/visualize/gradient_based.py,sha256=oXqMxqIClVlrgloZwgdTUl4pWllsoS0ysbjuvAbu-Kg,6278
|
@@ -412,8 +417,8 @@ monai/visualize/img2tensorboard.py,sha256=NnMcyfIFqX-jD7TBO3Rn02zt5uug79d_7pIIaV
|
|
412
417
|
monai/visualize/occlusion_sensitivity.py,sha256=OQHEJLyIhB8zWqQsfKaX-1kvCjWFVYtLfS4dFC0nKFI,18160
|
413
418
|
monai/visualize/utils.py,sha256=B-MhTVs7sQbIqYS3yPnpBwPw2K82rE2PBtGIfpwZtWM,9894
|
414
419
|
monai/visualize/visualizer.py,sha256=qckyaMZCbezYUwE20k5yc-Pb7UozVavMDbrmyQwfYHY,1377
|
415
|
-
monai_weekly-1.4.
|
416
|
-
monai_weekly-1.4.
|
417
|
-
monai_weekly-1.4.
|
418
|
-
monai_weekly-1.4.
|
419
|
-
monai_weekly-1.4.
|
420
|
+
monai_weekly-1.4.dev2436.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
421
|
+
monai_weekly-1.4.dev2436.dist-info/METADATA,sha256=C_iw0mDwc8E5PzL-gV-tj-8WjgwD0u1tqKHYTDarJoQ,11172
|
422
|
+
monai_weekly-1.4.dev2436.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
423
|
+
monai_weekly-1.4.dev2436.dist-info/top_level.txt,sha256=UaNwRzLGORdus41Ip446s3bBfViLkdkDsXDo34J2P44,6
|
424
|
+
monai_weekly-1.4.dev2436.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|