这是我收到的错误:
LinAlgError: SVD did not converge
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/monai/transforms/transform.py in apply_transform(transform, data, map_items, unpack_items, log_stats, lazy, overrides)
169 else:
170 _log_stats(data=data)
--> 171 raise RuntimeError(f"applying transform {transform}") from e
172
173
RuntimeError: applying transform <monai.transforms.io.dictionary.LoadImaged object at 0x7fde4bb5fca0>
这是我的代码:
# The paths are to every image or segmentation, type: <str>
train_files = [{"vol": image_name, "seg": label_name} for image_name, label_name in zip(path_train_volumes, path_train_segmentation)]
test_files = [{"vol": image_name, "seg": label_name} for image_name, label_name in zip(path_test_volumes, path_test_segmentation)]
dict_keys = ["vol", "seg"]
train_transforms = Compose(
[
LoadImaged(keys=dict_keys),
EnsureChannelFirstd(keys=dict_keys),
Orientationd(keys=dict_keys, axcodes="RAS"),
ScaleIntensityRanged(keys=dict_keys, a_min=0, a_max=700, b_min=0.0, b_max=1.0, clip=True),
CropForegroundd(keys=dict_keys, source_key="vol"),
Resized(keys=dict_keys, spatial_size=[256, 256, 155]),
ToTensord(keys=dict_keys)
]
)
test_transforms = Compose(
[
LoadImaged(keys=dict_keys),
EnsureChannelFirstd(keys=dict_keys),
Orientationd(keys=dict_keys, axcodes="RAS"),
ScaleIntensityRanged(keys=dict_keys, a_min=0, a_max=700, b_min=0.0, b_max=1.0, clip=True),
CropForegroundd(keys=dict_keys, source_key="vol"),
Resized(keys=dict_keys, spatial_size=[256, 256, 155]),
ToTensord(keys=dict_keys)
]
)
train_ds = CacheDataset(data=train_files, transform=train_transforms) #<------ Line where the traceback is
train_loader = DataLoader(train_ds, batch_size=1)
test_ds = CacheDataset(data=test_files, transform=test_transforms)
test_loader = DataLoader(test_ds, batch_size=1)
我想也许我正在加载一个字符串对象,但我认为这不是问题。
train_files 变量中的每一项都是一个字典,其中包含键“vol”或“seg”,值是各自的路径。也许转换有问题?
问题出在cacheDataset上