monai-weekly 1.5.dev2446__py3-none-any.whl → 1.5.dev2448__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 +1 -1
- monai/_version.py +3 -3
- monai/bundle/__init__.py +1 -1
- monai/bundle/reference_resolver.py +10 -0
- monai/bundle/workflows.py +187 -22
- monai/networks/blocks/selfattention.py +18 -4
- monai/networks/blocks/transformerblock.py +4 -2
- monai/networks/nets/__init__.py +1 -0
- monai/networks/nets/masked_autoencoder_vit.py +211 -0
- monai/networks/nets/swin_unetr.py +24 -12
- monai/transforms/__init__.py +9 -0
- monai/transforms/utility/array.py +103 -6
- monai/transforms/utility/dictionary.py +67 -0
- monai/utils/module.py +3 -3
- {monai_weekly-1.5.dev2446.dist-info → monai_weekly-1.5.dev2448.dist-info}/METADATA +71 -68
- {monai_weekly-1.5.dev2446.dist-info → monai_weekly-1.5.dev2448.dist-info}/RECORD +19 -18
- {monai_weekly-1.5.dev2446.dist-info → monai_weekly-1.5.dev2448.dist-info}/WHEEL +1 -1
- {monai_weekly-1.5.dev2446.dist-info → monai_weekly-1.5.dev2448.dist-info}/LICENSE +0 -0
- {monai_weekly-1.5.dev2446.dist-info → monai_weekly-1.5.dev2448.dist-info}/top_level.txt +0 -0
@@ -13,7 +13,6 @@ from __future__ import annotations
|
|
13
13
|
|
14
14
|
import itertools
|
15
15
|
from collections.abc import Sequence
|
16
|
-
from typing import Final
|
17
16
|
|
18
17
|
import numpy as np
|
19
18
|
import torch
|
@@ -51,8 +50,6 @@ class SwinUNETR(nn.Module):
|
|
51
50
|
<https://arxiv.org/abs/2201.01266>"
|
52
51
|
"""
|
53
52
|
|
54
|
-
patch_size: Final[int] = 2
|
55
|
-
|
56
53
|
@deprecated_arg(
|
57
54
|
name="img_size",
|
58
55
|
since="1.3",
|
@@ -65,18 +62,24 @@ class SwinUNETR(nn.Module):
|
|
65
62
|
img_size: Sequence[int] | int,
|
66
63
|
in_channels: int,
|
67
64
|
out_channels: int,
|
65
|
+
patch_size: int = 2,
|
68
66
|
depths: Sequence[int] = (2, 2, 2, 2),
|
69
67
|
num_heads: Sequence[int] = (3, 6, 12, 24),
|
68
|
+
window_size: Sequence[int] | int = 7,
|
69
|
+
qkv_bias: bool = True,
|
70
|
+
mlp_ratio: float = 4.0,
|
70
71
|
feature_size: int = 24,
|
71
72
|
norm_name: tuple | str = "instance",
|
72
73
|
drop_rate: float = 0.0,
|
73
74
|
attn_drop_rate: float = 0.0,
|
74
75
|
dropout_path_rate: float = 0.0,
|
75
76
|
normalize: bool = True,
|
77
|
+
norm_layer: type[LayerNorm] = nn.LayerNorm,
|
78
|
+
patch_norm: bool = True,
|
76
79
|
use_checkpoint: bool = False,
|
77
80
|
spatial_dims: int = 3,
|
78
|
-
downsample="merging",
|
79
|
-
use_v2=False,
|
81
|
+
downsample: str | nn.Module = "merging",
|
82
|
+
use_v2: bool = False,
|
80
83
|
) -> None:
|
81
84
|
"""
|
82
85
|
Args:
|
@@ -86,14 +89,20 @@ class SwinUNETR(nn.Module):
|
|
86
89
|
It will be removed in an upcoming version.
|
87
90
|
in_channels: dimension of input channels.
|
88
91
|
out_channels: dimension of output channels.
|
92
|
+
patch_size: size of the patch token.
|
89
93
|
feature_size: dimension of network feature size.
|
90
94
|
depths: number of layers in each stage.
|
91
95
|
num_heads: number of attention heads.
|
96
|
+
window_size: local window size.
|
97
|
+
qkv_bias: add a learnable bias to query, key, value.
|
98
|
+
mlp_ratio: ratio of mlp hidden dim to embedding dim.
|
92
99
|
norm_name: feature normalization type and arguments.
|
93
100
|
drop_rate: dropout rate.
|
94
101
|
attn_drop_rate: attention dropout rate.
|
95
102
|
dropout_path_rate: drop path rate.
|
96
103
|
normalize: normalize output intermediate features in each stage.
|
104
|
+
norm_layer: normalization layer.
|
105
|
+
patch_norm: whether to apply normalization to the patch embedding.
|
97
106
|
use_checkpoint: use gradient checkpointing for reduced memory usage.
|
98
107
|
spatial_dims: number of spatial dims.
|
99
108
|
downsample: module used for downsampling, available options are `"mergingv2"`, `"merging"` and a
|
@@ -116,13 +125,15 @@ class SwinUNETR(nn.Module):
|
|
116
125
|
|
117
126
|
super().__init__()
|
118
127
|
|
119
|
-
img_size = ensure_tuple_rep(img_size, spatial_dims)
|
120
|
-
patch_sizes = ensure_tuple_rep(self.patch_size, spatial_dims)
|
121
|
-
window_size = ensure_tuple_rep(7, spatial_dims)
|
122
|
-
|
123
128
|
if spatial_dims not in (2, 3):
|
124
129
|
raise ValueError("spatial dimension should be 2 or 3.")
|
125
130
|
|
131
|
+
self.patch_size = patch_size
|
132
|
+
|
133
|
+
img_size = ensure_tuple_rep(img_size, spatial_dims)
|
134
|
+
patch_sizes = ensure_tuple_rep(self.patch_size, spatial_dims)
|
135
|
+
window_size = ensure_tuple_rep(window_size, spatial_dims)
|
136
|
+
|
126
137
|
self._check_input_size(img_size)
|
127
138
|
|
128
139
|
if not (0 <= drop_rate <= 1):
|
@@ -146,12 +157,13 @@ class SwinUNETR(nn.Module):
|
|
146
157
|
patch_size=patch_sizes,
|
147
158
|
depths=depths,
|
148
159
|
num_heads=num_heads,
|
149
|
-
mlp_ratio=
|
150
|
-
qkv_bias=
|
160
|
+
mlp_ratio=mlp_ratio,
|
161
|
+
qkv_bias=qkv_bias,
|
151
162
|
drop_rate=drop_rate,
|
152
163
|
attn_drop_rate=attn_drop_rate,
|
153
164
|
drop_path_rate=dropout_path_rate,
|
154
|
-
norm_layer=
|
165
|
+
norm_layer=norm_layer,
|
166
|
+
patch_norm=patch_norm,
|
155
167
|
use_checkpoint=use_checkpoint,
|
156
168
|
spatial_dims=spatial_dims,
|
157
169
|
downsample=look_up_option(downsample, MERGING_MODE) if isinstance(downsample, str) else downsample,
|
monai/transforms/__init__.py
CHANGED
@@ -531,6 +531,8 @@ from .utility.array import (
|
|
531
531
|
RandIdentity,
|
532
532
|
RandImageFilter,
|
533
533
|
RandLambda,
|
534
|
+
RandTorchIO,
|
535
|
+
RandTorchVision,
|
534
536
|
RemoveRepeatedChannel,
|
535
537
|
RepeatChannel,
|
536
538
|
SimulateDelay,
|
@@ -540,6 +542,7 @@ from .utility.array import (
|
|
540
542
|
ToDevice,
|
541
543
|
ToNumpy,
|
542
544
|
ToPIL,
|
545
|
+
TorchIO,
|
543
546
|
TorchVision,
|
544
547
|
ToTensor,
|
545
548
|
Transpose,
|
@@ -620,6 +623,9 @@ from .utility.dictionary import (
|
|
620
623
|
RandLambdad,
|
621
624
|
RandLambdaD,
|
622
625
|
RandLambdaDict,
|
626
|
+
RandTorchIOd,
|
627
|
+
RandTorchIOD,
|
628
|
+
RandTorchIODict,
|
623
629
|
RandTorchVisiond,
|
624
630
|
RandTorchVisionD,
|
625
631
|
RandTorchVisionDict,
|
@@ -653,6 +659,9 @@ from .utility.dictionary import (
|
|
653
659
|
ToPILd,
|
654
660
|
ToPILD,
|
655
661
|
ToPILDict,
|
662
|
+
TorchIOd,
|
663
|
+
TorchIOD,
|
664
|
+
TorchIODict,
|
656
665
|
TorchVisiond,
|
657
666
|
TorchVisionD,
|
658
667
|
TorchVisionDict,
|
@@ -18,10 +18,10 @@ import logging
|
|
18
18
|
import sys
|
19
19
|
import time
|
20
20
|
import warnings
|
21
|
-
from collections.abc import Mapping, Sequence
|
21
|
+
from collections.abc import Hashable, Mapping, Sequence
|
22
22
|
from copy import deepcopy
|
23
23
|
from functools import partial
|
24
|
-
from typing import Any, Callable
|
24
|
+
from typing import Any, Callable, Union
|
25
25
|
|
26
26
|
import numpy as np
|
27
27
|
import torch
|
@@ -99,11 +99,14 @@ __all__ = [
|
|
99
99
|
"ConvertToMultiChannelBasedOnBratsClasses",
|
100
100
|
"AddExtremePointsChannel",
|
101
101
|
"TorchVision",
|
102
|
+
"TorchIO",
|
102
103
|
"MapLabelValue",
|
103
104
|
"IntensityStats",
|
104
105
|
"ToDevice",
|
105
106
|
"CuCIM",
|
106
107
|
"RandCuCIM",
|
108
|
+
"RandTorchIO",
|
109
|
+
"RandTorchVision",
|
107
110
|
"ToCupy",
|
108
111
|
"ImageFilter",
|
109
112
|
"RandImageFilter",
|
@@ -1136,12 +1139,44 @@ class AddExtremePointsChannel(Randomizable, Transform):
|
|
1136
1139
|
return concatenate((img, points_image), axis=0)
|
1137
1140
|
|
1138
1141
|
|
1139
|
-
class TorchVision:
|
1142
|
+
class TorchVision(Transform):
|
1140
1143
|
"""
|
1141
|
-
This is a wrapper transform for PyTorch TorchVision transform based on the specified transform name and args.
|
1142
|
-
|
1143
|
-
|
1144
|
+
This is a wrapper transform for PyTorch TorchVision non-randomized transform based on the specified transform name and args.
|
1145
|
+
Data is converted to a torch.tensor before applying the transform and then converted back to the original data type.
|
1146
|
+
"""
|
1147
|
+
|
1148
|
+
backend = [TransformBackends.TORCH]
|
1149
|
+
|
1150
|
+
def __init__(self, name: str, *args, **kwargs) -> None:
|
1151
|
+
"""
|
1152
|
+
Args:
|
1153
|
+
name: The transform name in TorchVision package.
|
1154
|
+
args: parameters for the TorchVision transform.
|
1155
|
+
kwargs: parameters for the TorchVision transform.
|
1156
|
+
|
1157
|
+
"""
|
1158
|
+
super().__init__()
|
1159
|
+
self.name = name
|
1160
|
+
transform, _ = optional_import("torchvision.transforms", "0.8.0", min_version, name=name)
|
1161
|
+
self.trans = transform(*args, **kwargs)
|
1162
|
+
|
1163
|
+
def __call__(self, img: NdarrayOrTensor):
|
1164
|
+
"""
|
1165
|
+
Args:
|
1166
|
+
img: PyTorch Tensor data for the TorchVision transform.
|
1144
1167
|
|
1168
|
+
"""
|
1169
|
+
img_t, *_ = convert_data_type(img, torch.Tensor)
|
1170
|
+
|
1171
|
+
out = self.trans(img_t)
|
1172
|
+
out, *_ = convert_to_dst_type(src=out, dst=img)
|
1173
|
+
return out
|
1174
|
+
|
1175
|
+
|
1176
|
+
class RandTorchVision(Transform, RandomizableTrait):
|
1177
|
+
"""
|
1178
|
+
This is a wrapper transform for PyTorch TorchVision randomized transform based on the specified transform name and args.
|
1179
|
+
Data is converted to a torch.tensor before applying the transform and then converted back to the original data type.
|
1145
1180
|
"""
|
1146
1181
|
|
1147
1182
|
backend = [TransformBackends.TORCH]
|
@@ -1172,6 +1207,68 @@ class TorchVision:
|
|
1172
1207
|
return out
|
1173
1208
|
|
1174
1209
|
|
1210
|
+
class TorchIO(Transform):
|
1211
|
+
"""
|
1212
|
+
This is a wrapper for TorchIO non-randomized transforms based on the specified transform name and args.
|
1213
|
+
See https://torchio.readthedocs.io/transforms/transforms.html for more details.
|
1214
|
+
"""
|
1215
|
+
|
1216
|
+
backend = [TransformBackends.TORCH]
|
1217
|
+
|
1218
|
+
def __init__(self, name: str, *args, **kwargs) -> None:
|
1219
|
+
"""
|
1220
|
+
Args:
|
1221
|
+
name: The transform name in TorchIO package.
|
1222
|
+
args: parameters for the TorchIO transform.
|
1223
|
+
kwargs: parameters for the TorchIO transform.
|
1224
|
+
"""
|
1225
|
+
super().__init__()
|
1226
|
+
self.name = name
|
1227
|
+
transform, _ = optional_import("torchio.transforms", "0.18.0", min_version, name=name)
|
1228
|
+
self.trans = transform(*args, **kwargs)
|
1229
|
+
|
1230
|
+
def __call__(self, img: Union[NdarrayOrTensor, Mapping[Hashable, NdarrayOrTensor]]):
|
1231
|
+
"""
|
1232
|
+
Args:
|
1233
|
+
img: an instance of torchio.Subject, torchio.Image, numpy.ndarray, torch.Tensor, SimpleITK.Image,
|
1234
|
+
or dict containing 4D tensors as values
|
1235
|
+
|
1236
|
+
"""
|
1237
|
+
return self.trans(img)
|
1238
|
+
|
1239
|
+
|
1240
|
+
class RandTorchIO(Transform, RandomizableTrait):
|
1241
|
+
"""
|
1242
|
+
This is a wrapper for TorchIO randomized transforms based on the specified transform name and args.
|
1243
|
+
See https://torchio.readthedocs.io/transforms/transforms.html for more details.
|
1244
|
+
Use this wrapper for all TorchIO transform inheriting from RandomTransform:
|
1245
|
+
https://torchio.readthedocs.io/transforms/augmentation.html#randomtransform
|
1246
|
+
"""
|
1247
|
+
|
1248
|
+
backend = [TransformBackends.TORCH]
|
1249
|
+
|
1250
|
+
def __init__(self, name: str, *args, **kwargs) -> None:
|
1251
|
+
"""
|
1252
|
+
Args:
|
1253
|
+
name: The transform name in TorchIO package.
|
1254
|
+
args: parameters for the TorchIO transform.
|
1255
|
+
kwargs: parameters for the TorchIO transform.
|
1256
|
+
"""
|
1257
|
+
super().__init__()
|
1258
|
+
self.name = name
|
1259
|
+
transform, _ = optional_import("torchio.transforms", "0.18.0", min_version, name=name)
|
1260
|
+
self.trans = transform(*args, **kwargs)
|
1261
|
+
|
1262
|
+
def __call__(self, img: Union[NdarrayOrTensor, Mapping[Hashable, NdarrayOrTensor]]):
|
1263
|
+
"""
|
1264
|
+
Args:
|
1265
|
+
img: an instance of torchio.Subject, torchio.Image, numpy.ndarray, torch.Tensor, SimpleITK.Image,
|
1266
|
+
or dict containing 4D tensors as values
|
1267
|
+
|
1268
|
+
"""
|
1269
|
+
return self.trans(img)
|
1270
|
+
|
1271
|
+
|
1175
1272
|
class MapLabelValue:
|
1176
1273
|
"""
|
1177
1274
|
Utility to map label values to another set of values.
|
@@ -60,6 +60,7 @@ from monai.transforms.utility.array import (
|
|
60
60
|
ToDevice,
|
61
61
|
ToNumpy,
|
62
62
|
ToPIL,
|
63
|
+
TorchIO,
|
63
64
|
TorchVision,
|
64
65
|
ToTensor,
|
65
66
|
Transpose,
|
@@ -136,6 +137,9 @@ __all__ = [
|
|
136
137
|
"RandLambdaD",
|
137
138
|
"RandLambdaDict",
|
138
139
|
"RandLambdad",
|
140
|
+
"RandTorchIOd",
|
141
|
+
"RandTorchIOD",
|
142
|
+
"RandTorchIODict",
|
139
143
|
"RandTorchVisionD",
|
140
144
|
"RandTorchVisionDict",
|
141
145
|
"RandTorchVisiond",
|
@@ -172,6 +176,9 @@ __all__ = [
|
|
172
176
|
"ToTensorD",
|
173
177
|
"ToTensorDict",
|
174
178
|
"ToTensord",
|
179
|
+
"TorchIOD",
|
180
|
+
"TorchIODict",
|
181
|
+
"TorchIOd",
|
175
182
|
"TorchVisionD",
|
176
183
|
"TorchVisionDict",
|
177
184
|
"TorchVisiond",
|
@@ -1445,6 +1452,64 @@ class RandTorchVisiond(MapTransform, RandomizableTrait):
|
|
1445
1452
|
return d
|
1446
1453
|
|
1447
1454
|
|
1455
|
+
class TorchIOd(MapTransform):
|
1456
|
+
"""
|
1457
|
+
Dictionary-based wrapper of :py:class:`monai.transforms.TorchIO` for non-randomized transforms.
|
1458
|
+
For randomized transforms of TorchIO use :py:class:`monai.transforms.RandTorchIOd`.
|
1459
|
+
"""
|
1460
|
+
|
1461
|
+
backend = TorchIO.backend
|
1462
|
+
|
1463
|
+
def __init__(self, keys: KeysCollection, name: str, allow_missing_keys: bool = False, *args, **kwargs) -> None:
|
1464
|
+
"""
|
1465
|
+
Args:
|
1466
|
+
keys: keys of the corresponding items to be transformed.
|
1467
|
+
See also: :py:class:`monai.transforms.compose.MapTransform`
|
1468
|
+
name: The transform name in TorchIO package.
|
1469
|
+
allow_missing_keys: don't raise exception if key is missing.
|
1470
|
+
args: parameters for the TorchIO transform.
|
1471
|
+
kwargs: parameters for the TorchIO transform.
|
1472
|
+
|
1473
|
+
"""
|
1474
|
+
super().__init__(keys, allow_missing_keys)
|
1475
|
+
self.name = name
|
1476
|
+
kwargs["include"] = self.keys
|
1477
|
+
|
1478
|
+
self.trans = TorchIO(name, *args, **kwargs)
|
1479
|
+
|
1480
|
+
def __call__(self, data: Mapping[Hashable, NdarrayOrTensor]) -> Mapping[Hashable, NdarrayOrTensor]:
|
1481
|
+
return dict(self.trans(data))
|
1482
|
+
|
1483
|
+
|
1484
|
+
class RandTorchIOd(MapTransform, RandomizableTrait):
|
1485
|
+
"""
|
1486
|
+
Dictionary-based wrapper of :py:class:`monai.transforms.TorchIO` for randomized transforms.
|
1487
|
+
For non-randomized transforms of TorchIO use :py:class:`monai.transforms.TorchIOd`.
|
1488
|
+
"""
|
1489
|
+
|
1490
|
+
backend = TorchIO.backend
|
1491
|
+
|
1492
|
+
def __init__(self, keys: KeysCollection, name: str, allow_missing_keys: bool = False, *args, **kwargs) -> None:
|
1493
|
+
"""
|
1494
|
+
Args:
|
1495
|
+
keys: keys of the corresponding items to be transformed.
|
1496
|
+
See also: :py:class:`monai.transforms.compose.MapTransform`
|
1497
|
+
name: The transform name in TorchIO package.
|
1498
|
+
allow_missing_keys: don't raise exception if key is missing.
|
1499
|
+
args: parameters for the TorchIO transform.
|
1500
|
+
kwargs: parameters for the TorchIO transform.
|
1501
|
+
|
1502
|
+
"""
|
1503
|
+
super().__init__(keys, allow_missing_keys)
|
1504
|
+
self.name = name
|
1505
|
+
kwargs["include"] = self.keys
|
1506
|
+
|
1507
|
+
self.trans = TorchIO(name, *args, **kwargs)
|
1508
|
+
|
1509
|
+
def __call__(self, data: Mapping[Hashable, NdarrayOrTensor]) -> Mapping[Hashable, NdarrayOrTensor]:
|
1510
|
+
return dict(self.trans(data))
|
1511
|
+
|
1512
|
+
|
1448
1513
|
class MapLabelValued(MapTransform):
|
1449
1514
|
"""
|
1450
1515
|
Dictionary-based wrapper of :py:class:`monai.transforms.MapLabelValue`.
|
@@ -1871,8 +1936,10 @@ ConvertToMultiChannelBasedOnBratsClassesD = ConvertToMultiChannelBasedOnBratsCla
|
|
1871
1936
|
ConvertToMultiChannelBasedOnBratsClassesd
|
1872
1937
|
)
|
1873
1938
|
AddExtremePointsChannelD = AddExtremePointsChannelDict = AddExtremePointsChanneld
|
1939
|
+
TorchIOD = TorchIODict = TorchIOd
|
1874
1940
|
TorchVisionD = TorchVisionDict = TorchVisiond
|
1875
1941
|
RandTorchVisionD = RandTorchVisionDict = RandTorchVisiond
|
1942
|
+
RandTorchIOD = RandTorchIODict = RandTorchIOd
|
1876
1943
|
RandLambdaD = RandLambdaDict = RandLambdad
|
1877
1944
|
MapLabelValueD = MapLabelValueDict = MapLabelValued
|
1878
1945
|
IntensityStatsD = IntensityStatsDict = IntensityStatsd
|
monai/utils/module.py
CHANGED
@@ -649,7 +649,7 @@ def compute_capabilities_after(major: int, minor: int = 0, current_ver_string: s
|
|
649
649
|
current_ver_string: if None, the current system GPU CUDA compute capability will be used.
|
650
650
|
|
651
651
|
Returns:
|
652
|
-
True if the current system GPU CUDA compute capability is greater than the specified version.
|
652
|
+
True if the current system GPU CUDA compute capability is greater than or equal to the specified version.
|
653
653
|
"""
|
654
654
|
if current_ver_string is None:
|
655
655
|
cuda_available = torch.cuda.is_available()
|
@@ -667,11 +667,11 @@ def compute_capabilities_after(major: int, minor: int = 0, current_ver_string: s
|
|
667
667
|
|
668
668
|
ver, has_ver = optional_import("packaging.version", name="parse")
|
669
669
|
if has_ver:
|
670
|
-
return ver(".".join((f"{major}", f"{minor}")))
|
670
|
+
return ver(".".join((f"{major}", f"{minor}"))) <= ver(f"{current_ver_string}") # type: ignore
|
671
671
|
parts = f"{current_ver_string}".split("+", 1)[0].split(".", 2)
|
672
672
|
while len(parts) < 2:
|
673
673
|
parts += ["0"]
|
674
674
|
c_major, c_minor = parts[:2]
|
675
675
|
c_mn = int(c_major), int(c_minor)
|
676
676
|
mn = int(major), int(minor)
|
677
|
-
return c_mn
|
677
|
+
return c_mn > mn
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: monai-weekly
|
3
|
-
Version: 1.5.
|
3
|
+
Version: 1.5.dev2448
|
4
4
|
Summary: AI Toolkit for Healthcare Imaging
|
5
5
|
Home-page: https://monai.io/
|
6
6
|
Author: MONAI Consortium
|
@@ -35,20 +35,24 @@ 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.12.0; python_version >= "3.9" and extra == "all"
|
38
39
|
Requires-Dist: pillow; extra == "all"
|
39
40
|
Requires-Dist: tensorboard; extra == "all"
|
40
41
|
Requires-Dist: gdown>=4.7.3; extra == "all"
|
41
42
|
Requires-Dist: pytorch-ignite==0.4.11; extra == "all"
|
43
|
+
Requires-Dist: torchio; extra == "all"
|
42
44
|
Requires-Dist: torchvision; extra == "all"
|
43
45
|
Requires-Dist: itk>=5.2; extra == "all"
|
44
46
|
Requires-Dist: tqdm>=4.47.0; extra == "all"
|
45
47
|
Requires-Dist: lmdb; extra == "all"
|
46
48
|
Requires-Dist: psutil; extra == "all"
|
49
|
+
Requires-Dist: cucim-cu12; (python_version >= "3.9" and python_version <= "3.10") and extra == "all"
|
47
50
|
Requires-Dist: openslide-python; extra == "all"
|
48
51
|
Requires-Dist: tifffile; extra == "all"
|
49
52
|
Requires-Dist: imagecodecs; extra == "all"
|
50
53
|
Requires-Dist: pandas; extra == "all"
|
51
54
|
Requires-Dist: einops; extra == "all"
|
55
|
+
Requires-Dist: transformers<4.41.0,>=4.36.0; python_version <= "3.10" and extra == "all"
|
52
56
|
Requires-Dist: mlflow>=2.12.2; extra == "all"
|
53
57
|
Requires-Dist: clearml>=1.10.0rc0; extra == "all"
|
54
58
|
Requires-Dist: matplotlib>=3.6.3; extra == "all"
|
@@ -62,96 +66,95 @@ Requires-Dist: h5py; extra == "all"
|
|
62
66
|
Requires-Dist: nni; extra == "all"
|
63
67
|
Requires-Dist: optuna; extra == "all"
|
64
68
|
Requires-Dist: onnx>=1.13.0; extra == "all"
|
69
|
+
Requires-Dist: onnxruntime; python_version <= "3.10" and extra == "all"
|
65
70
|
Requires-Dist: zarr; extra == "all"
|
66
71
|
Requires-Dist: lpips==0.1.4; extra == "all"
|
67
72
|
Requires-Dist: nvidia-ml-py; extra == "all"
|
68
|
-
Requires-Dist:
|
73
|
+
Requires-Dist: huggingface_hub; extra == "all"
|
69
74
|
Requires-Dist: pyamg>=5.0.0; extra == "all"
|
70
|
-
|
71
|
-
Requires-Dist:
|
72
|
-
|
73
|
-
Requires-Dist:
|
74
|
-
Provides-Extra:
|
75
|
-
Requires-Dist:
|
76
|
-
Provides-Extra:
|
77
|
-
Requires-Dist:
|
78
|
-
Provides-Extra:
|
79
|
-
Requires-Dist:
|
80
|
-
Provides-Extra:
|
81
|
-
Requires-Dist:
|
75
|
+
Provides-Extra: nibabel
|
76
|
+
Requires-Dist: nibabel; extra == "nibabel"
|
77
|
+
Provides-Extra: ninja
|
78
|
+
Requires-Dist: ninja; extra == "ninja"
|
79
|
+
Provides-Extra: skimage
|
80
|
+
Requires-Dist: scikit-image>=0.14.2; extra == "skimage"
|
81
|
+
Provides-Extra: scipy
|
82
|
+
Requires-Dist: scipy>=1.12.0; python_version >= "3.9" and extra == "scipy"
|
83
|
+
Provides-Extra: pillow
|
84
|
+
Requires-Dist: pillow!=8.3.0; extra == "pillow"
|
85
|
+
Provides-Extra: tensorboard
|
86
|
+
Requires-Dist: tensorboard; extra == "tensorboard"
|
82
87
|
Provides-Extra: gdown
|
83
88
|
Requires-Dist: gdown>=4.7.3; extra == "gdown"
|
84
|
-
Provides-Extra: h5py
|
85
|
-
Requires-Dist: h5py; extra == "h5py"
|
86
|
-
Provides-Extra: huggingface_hub
|
87
|
-
Requires-Dist: huggingface-hub; extra == "huggingface-hub"
|
88
89
|
Provides-Extra: ignite
|
89
90
|
Requires-Dist: pytorch-ignite==0.4.11; extra == "ignite"
|
90
|
-
Provides-Extra:
|
91
|
-
Requires-Dist:
|
91
|
+
Provides-Extra: torchio
|
92
|
+
Requires-Dist: torchio; extra == "torchio"
|
93
|
+
Provides-Extra: torchvision
|
94
|
+
Requires-Dist: torchvision; extra == "torchvision"
|
92
95
|
Provides-Extra: itk
|
93
96
|
Requires-Dist: itk>=5.2; extra == "itk"
|
94
|
-
Provides-Extra:
|
95
|
-
Requires-Dist:
|
97
|
+
Provides-Extra: tqdm
|
98
|
+
Requires-Dist: tqdm>=4.47.0; extra == "tqdm"
|
96
99
|
Provides-Extra: lmdb
|
97
100
|
Requires-Dist: lmdb; extra == "lmdb"
|
98
|
-
Provides-Extra:
|
99
|
-
Requires-Dist:
|
100
|
-
Provides-Extra:
|
101
|
-
Requires-Dist:
|
101
|
+
Provides-Extra: psutil
|
102
|
+
Requires-Dist: psutil; extra == "psutil"
|
103
|
+
Provides-Extra: cucim
|
104
|
+
Requires-Dist: cucim-cu12; extra == "cucim"
|
105
|
+
Provides-Extra: openslide
|
106
|
+
Requires-Dist: openslide-python; extra == "openslide"
|
107
|
+
Provides-Extra: tifffile
|
108
|
+
Requires-Dist: tifffile; extra == "tifffile"
|
109
|
+
Provides-Extra: imagecodecs
|
110
|
+
Requires-Dist: imagecodecs; extra == "imagecodecs"
|
111
|
+
Provides-Extra: pandas
|
112
|
+
Requires-Dist: pandas; extra == "pandas"
|
113
|
+
Provides-Extra: einops
|
114
|
+
Requires-Dist: einops; extra == "einops"
|
115
|
+
Provides-Extra: transformers
|
116
|
+
Requires-Dist: transformers<4.41.0,>=4.36.0; python_version <= "3.10" and extra == "transformers"
|
102
117
|
Provides-Extra: mlflow
|
103
118
|
Requires-Dist: mlflow>=2.12.2; extra == "mlflow"
|
104
|
-
Provides-Extra:
|
105
|
-
Requires-Dist:
|
106
|
-
Provides-Extra:
|
107
|
-
Requires-Dist:
|
119
|
+
Provides-Extra: matplotlib
|
120
|
+
Requires-Dist: matplotlib>=3.6.3; extra == "matplotlib"
|
121
|
+
Provides-Extra: clearml
|
122
|
+
Requires-Dist: clearml; extra == "clearml"
|
123
|
+
Provides-Extra: tensorboardx
|
124
|
+
Requires-Dist: tensorboardX; extra == "tensorboardx"
|
125
|
+
Provides-Extra: pyyaml
|
126
|
+
Requires-Dist: pyyaml; extra == "pyyaml"
|
127
|
+
Provides-Extra: fire
|
128
|
+
Requires-Dist: fire; extra == "fire"
|
129
|
+
Provides-Extra: packaging
|
130
|
+
Requires-Dist: packaging; extra == "packaging"
|
131
|
+
Provides-Extra: jsonschema
|
132
|
+
Requires-Dist: jsonschema; extra == "jsonschema"
|
133
|
+
Provides-Extra: pynrrd
|
134
|
+
Requires-Dist: pynrrd; extra == "pynrrd"
|
135
|
+
Provides-Extra: pydicom
|
136
|
+
Requires-Dist: pydicom; extra == "pydicom"
|
137
|
+
Provides-Extra: h5py
|
138
|
+
Requires-Dist: h5py; extra == "h5py"
|
108
139
|
Provides-Extra: nni
|
109
140
|
Requires-Dist: nni; extra == "nni"
|
141
|
+
Provides-Extra: optuna
|
142
|
+
Requires-Dist: optuna; extra == "optuna"
|
110
143
|
Provides-Extra: onnx
|
111
144
|
Requires-Dist: onnx>=1.13.0; extra == "onnx"
|
112
145
|
Requires-Dist: onnxruntime; python_version <= "3.10" and extra == "onnx"
|
113
|
-
Provides-Extra:
|
114
|
-
Requires-Dist:
|
115
|
-
Provides-Extra:
|
116
|
-
Requires-Dist:
|
117
|
-
Provides-Extra:
|
118
|
-
Requires-Dist:
|
119
|
-
Provides-Extra: pandas
|
120
|
-
Requires-Dist: pandas; extra == "pandas"
|
121
|
-
Provides-Extra: pillow
|
122
|
-
Requires-Dist: pillow!=8.3.0; extra == "pillow"
|
146
|
+
Provides-Extra: zarr
|
147
|
+
Requires-Dist: zarr; extra == "zarr"
|
148
|
+
Provides-Extra: lpips
|
149
|
+
Requires-Dist: lpips==0.1.4; extra == "lpips"
|
150
|
+
Provides-Extra: pynvml
|
151
|
+
Requires-Dist: nvidia-ml-py; extra == "pynvml"
|
123
152
|
Provides-Extra: polygraphy
|
124
153
|
Requires-Dist: polygraphy; extra == "polygraphy"
|
125
|
-
Provides-Extra:
|
126
|
-
Requires-Dist:
|
154
|
+
Provides-Extra: huggingface-hub
|
155
|
+
Requires-Dist: huggingface_hub; extra == "huggingface-hub"
|
127
156
|
Provides-Extra: pyamg
|
128
157
|
Requires-Dist: pyamg>=5.0.0; extra == "pyamg"
|
129
|
-
Provides-Extra: pydicom
|
130
|
-
Requires-Dist: pydicom; extra == "pydicom"
|
131
|
-
Provides-Extra: pynrrd
|
132
|
-
Requires-Dist: pynrrd; extra == "pynrrd"
|
133
|
-
Provides-Extra: pynvml
|
134
|
-
Requires-Dist: nvidia-ml-py; extra == "pynvml"
|
135
|
-
Provides-Extra: pyyaml
|
136
|
-
Requires-Dist: pyyaml; extra == "pyyaml"
|
137
|
-
Provides-Extra: scipy
|
138
|
-
Requires-Dist: scipy>=1.12.0; python_version >= "3.9" and extra == "scipy"
|
139
|
-
Provides-Extra: skimage
|
140
|
-
Requires-Dist: scikit-image>=0.14.2; extra == "skimage"
|
141
|
-
Provides-Extra: tensorboard
|
142
|
-
Requires-Dist: tensorboard; extra == "tensorboard"
|
143
|
-
Provides-Extra: tensorboardx
|
144
|
-
Requires-Dist: tensorboardX; extra == "tensorboardx"
|
145
|
-
Provides-Extra: tifffile
|
146
|
-
Requires-Dist: tifffile; extra == "tifffile"
|
147
|
-
Provides-Extra: torchvision
|
148
|
-
Requires-Dist: torchvision; extra == "torchvision"
|
149
|
-
Provides-Extra: tqdm
|
150
|
-
Requires-Dist: tqdm>=4.47.0; extra == "tqdm"
|
151
|
-
Provides-Extra: transformers
|
152
|
-
Requires-Dist: transformers<4.41.0,>=4.36.0; python_version <= "3.10" and extra == "transformers"
|
153
|
-
Provides-Extra: zarr
|
154
|
-
Requires-Dist: zarr; extra == "zarr"
|
155
158
|
|
156
159
|
<p align="center">
|
157
160
|
<img src="https://raw.githubusercontent.com/Project-MONAI/MONAI/dev/docs/images/MONAI-logo-color.png" width="50%" alt='project-monai'>
|