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.
@@ -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=4.0,
150
- qkv_bias=True,
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=nn.LayerNorm,
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,
@@ -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
- As most of the TorchVision transforms only work for PIL image and PyTorch Tensor, this transform expects input
1143
- data to be PyTorch Tensor, users can easily call `ToTensor` transform to convert a Numpy array to Tensor.
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}"))) < ver(f"{current_ver_string}") # type: ignore
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 >= 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.dev2446
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: huggingface-hub; extra == "all"
73
+ Requires-Dist: huggingface_hub; extra == "all"
69
74
  Requires-Dist: pyamg>=5.0.0; extra == "all"
70
- Requires-Dist: transformers<4.41.0,>=4.36.0; python_version <= "3.10" and extra == "all"
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
- Requires-Dist: cucim-cu12; (python_version >= "3.9" and python_version <= "3.10") and extra == "all"
74
- Provides-Extra: clearml
75
- Requires-Dist: clearml; extra == "clearml"
76
- Provides-Extra: cucim
77
- Requires-Dist: cucim-cu12; extra == "cucim"
78
- Provides-Extra: einops
79
- Requires-Dist: einops; extra == "einops"
80
- Provides-Extra: fire
81
- Requires-Dist: fire; extra == "fire"
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: imagecodecs
91
- Requires-Dist: imagecodecs; extra == "imagecodecs"
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: jsonschema
95
- Requires-Dist: jsonschema; extra == "jsonschema"
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: lpips
99
- Requires-Dist: lpips==0.1.4; extra == "lpips"
100
- Provides-Extra: matplotlib
101
- Requires-Dist: matplotlib>=3.6.3; extra == "matplotlib"
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: nibabel
105
- Requires-Dist: nibabel; extra == "nibabel"
106
- Provides-Extra: ninja
107
- Requires-Dist: ninja; extra == "ninja"
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: openslide
114
- Requires-Dist: openslide-python; extra == "openslide"
115
- Provides-Extra: optuna
116
- Requires-Dist: optuna; extra == "optuna"
117
- Provides-Extra: packaging
118
- Requires-Dist: packaging; extra == "packaging"
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: psutil
126
- Requires-Dist: psutil; extra == "psutil"
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'>