Replies: 1 comment 5 replies
-
Hi @halo34, It appears that the error is related to an improper reader for files with the .img extension; perhaps you can convert your data to nii? |
Beta Was this translation helpful? Give feedback.
5 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi, I try to run the deep atlas on Colab. I installed all requirements of monai. But I got an error at:
`dataset_seg_available_train = monai.data.CacheDataset(
data=data_seg_available_train, transform=transform_seg_available, cache_num=16
)
dataset_seg_available_valid = monai.data.CacheDataset(
data=data_seg_available_valid, transform=transform_seg_available, cache_num=16
)`
Can someone help me?
The error is:
Loading dataset: 0%| | 0/8 [00:00<?, ?it/s]
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)
140 return [_apply_transform(transform, item, unpack_items, lazy, overrides, log_stats) for item in data]
--> 141 return _apply_transform(transform, data, unpack_items, lazy, overrides, log_stats)
142 except Exception as e:
13 frames
/usr/local/lib/python3.10/dist-packages/monai/transforms/transform.py in _apply_transform(transform, data, unpack_parameters, lazy, overrides, logger_name)
97
---> 98 return transform(data, lazy=lazy) if isinstance(transform, LazyTrait) else transform(data)
99
/usr/local/lib/python3.10/dist-packages/monai/transforms/io/dictionary.py in call(self, data, reader)
161 for key, meta_key, meta_key_postfix in self.key_iterator(d, self.meta_keys, self.meta_key_postfix):
--> 162 data = self._loader(d[key], reader)
163 if self._loader.image_only:
/usr/local/lib/python3.10/dist-packages/monai/transforms/io/array.py in call(self, filename, reader)
273 msg = "\n".join([f"{e}" for e in err])
--> 274 raise RuntimeError(
275 f"{self.class.name} cannot find a suitable reader for file: {filename}.\n"
RuntimeError: LoadImage cannot find a suitable reader for file: /tmp/tmp1l1xclsh/OASIS-1/disc1/OAS1_0034_MR1/PROCESSED/MPRAGE/T88_111/OAS1_0034_MR1_mpr_n3_anon_111_t88_masked_gfc.img.
Please install the reader libraries, see also the installation instructions:
https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies.
The current registered: [<monai.data.image_reader.PydicomReader object at 0x797802e1bac0>, <monai.data.image_reader.ITKReader object at 0x797802e1b1c0>, <monai.data.image_reader.NrrdReader object at 0x797802e1b250>, <monai.data.image_reader.NumpyReader object at 0x797802e1b1f0>, <monai.data.image_reader.PILReader object at 0x797802e1a680>, <monai.data.image_reader.NibabelReader object at 0x797802e1b8b0>].
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
in <cell line: 1>()
----> 1 dataset_seg_available_train = monai.data.CacheDataset(
2 data=data_seg_available_train, transform=transform_seg_available, cache_num=16
3 )
4
5 dataset_seg_available_valid = monai.data.CacheDataset(
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in init(self, data, transform, cache_num, cache_rate, num_workers, progress, copy_cache, as_contiguous, hash_as_key, hash_func, runtime_cache)
821 self._cache: list | ListProxy = []
822 self._hash_keys: list = []
--> 823 self.set_data(data)
824
825 def set_data(self, data: Sequence) -> None:
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in set_data(self, data)
848
849 if self.runtime_cache in (False, None): # prepare cache content immediately
--> 850 self._cache = self._fill_cache(indices)
851 return
852 if isinstance(self.runtime_cache, str) and "process" in self.runtime_cache:
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in _fill_cache(self, indices)
877 with ThreadPool(self.num_workers) as p:
878 if self.progress and has_tqdm:
--> 879 return list(tqdm(p.imap(self._load_cache_item, indices), total=len(indices), desc="Loading dataset"))
880 return list(p.imap(self._load_cache_item, indices))
881
/usr/local/lib/python3.10/dist-packages/tqdm/std.py in iter(self)
1180
1181 try:
-> 1182 for obj in iterable:
1183 yield obj
1184 # Update and possibly print the progressbar.
/usr/lib/python3.10/multiprocessing/pool.py in next(self, timeout)
871 if success:
872 return value
--> 873 raise value
874
875 next = next # XXX
/usr/lib/python3.10/multiprocessing/pool.py in worker(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)
123 job, i, func, args, kwds = task
124 try:
--> 125 result = (True, func(*args, **kwds))
126 except Exception as e:
127 if wrap_exception and func is not _helper_reraises_exception:
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in _load_cache_item(self, idx)
890 lambda t: isinstance(t, RandomizableTrait) or not isinstance(t, Transform)
891 )
--> 892 item = self.transform(item, end=first_random, threading=True)
893
894 if self.as_contiguous:
/usr/local/lib/python3.10/dist-packages/monai/transforms/compose.py in call(self, input_, start, end, threading, lazy)
333 def call(self, input_, start=0, end=None, threading=False, lazy: bool | None = None):
334 _lazy = self.lazy if lazy is None else lazy
--> 335 result = execute_compose(
336 input,
337 transforms=self.transforms,
/usr/local/lib/python3.10/dist-packages/monai/transforms/compose.py in execute_compose(data, transforms, map_items, unpack_items, start, end, lazy, overrides, threading, log_stats)
109 if threading:
110 _transform = deepcopy(_transform) if isinstance(_transform, ThreadUnsafe) else _transform
--> 111 data = apply_transform(
112 _transform, data, map_items, unpack_items, lazy=lazy, overrides=overrides, log_stats=log_stats
113 )
/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 0x797802e1b6a0>Loading dataset: 0%| | 0/8 [00:00<?, ?it/s]
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)
140 return [_apply_transform(transform, item, unpack_items, lazy, overrides, log_stats) for item in data]
--> 141 return _apply_transform(transform, data, unpack_items, lazy, overrides, log_stats)
142 except Exception as e:
13 frames
/usr/local/lib/python3.10/dist-packages/monai/transforms/transform.py in _apply_transform(transform, data, unpack_parameters, lazy, overrides, logger_name)
97
---> 98 return transform(data, lazy=lazy) if isinstance(transform, LazyTrait) else transform(data)
99
/usr/local/lib/python3.10/dist-packages/monai/transforms/io/dictionary.py in call(self, data, reader)
161 for key, meta_key, meta_key_postfix in self.key_iterator(d, self.meta_keys, self.meta_key_postfix):
--> 162 data = self._loader(d[key], reader)
163 if self._loader.image_only:
/usr/local/lib/python3.10/dist-packages/monai/transforms/io/array.py in call(self, filename, reader)
273 msg = "\n".join([f"{e}" for e in err])
--> 274 raise RuntimeError(
275 f"{self.class.name} cannot find a suitable reader for file: {filename}.\n"
RuntimeError: LoadImage cannot find a suitable reader for file: /tmp/tmp1l1xclsh/OASIS-1/disc1/OAS1_0034_MR1/PROCESSED/MPRAGE/T88_111/OAS1_0034_MR1_mpr_n3_anon_111_t88_masked_gfc.img.
Please install the reader libraries, see also the installation instructions:
https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies.
The current registered: [<monai.data.image_reader.PydicomReader object at 0x797802e1bac0>, <monai.data.image_reader.ITKReader object at 0x797802e1b1c0>, <monai.data.image_reader.NrrdReader object at 0x797802e1b250>, <monai.data.image_reader.NumpyReader object at 0x797802e1b1f0>, <monai.data.image_reader.PILReader object at 0x797802e1a680>, <monai.data.image_reader.NibabelReader object at 0x797802e1b8b0>].
The above exception was the direct cause of the following exception:
RuntimeError Traceback (most recent call last)
in <cell line: 1>()
----> 1 dataset_seg_available_train = monai.data.CacheDataset(
2 data=data_seg_available_train, transform=transform_seg_available, cache_num=16
3 )
4
5 dataset_seg_available_valid = monai.data.CacheDataset(
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in init(self, data, transform, cache_num, cache_rate, num_workers, progress, copy_cache, as_contiguous, hash_as_key, hash_func, runtime_cache)
821 self._cache: list | ListProxy = []
822 self._hash_keys: list = []
--> 823 self.set_data(data)
824
825 def set_data(self, data: Sequence) -> None:
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in set_data(self, data)
848
849 if self.runtime_cache in (False, None): # prepare cache content immediately
--> 850 self._cache = self._fill_cache(indices)
851 return
852 if isinstance(self.runtime_cache, str) and "process" in self.runtime_cache:
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in _fill_cache(self, indices)
877 with ThreadPool(self.num_workers) as p:
878 if self.progress and has_tqdm:
--> 879 return list(tqdm(p.imap(self._load_cache_item, indices), total=len(indices), desc="Loading dataset"))
880 return list(p.imap(self._load_cache_item, indices))
881
/usr/local/lib/python3.10/dist-packages/tqdm/std.py in iter(self)
1180
1181 try:
-> 1182 for obj in iterable:
1183 yield obj
1184 # Update and possibly print the progressbar.
/usr/lib/python3.10/multiprocessing/pool.py in next(self, timeout)
871 if success:
872 return value
--> 873 raise value
874
875 next = next # XXX
/usr/lib/python3.10/multiprocessing/pool.py in worker(inqueue, outqueue, initializer, initargs, maxtasks, wrap_exception)
123 job, i, func, args, kwds = task
124 try:
--> 125 result = (True, func(*args, **kwds))
126 except Exception as e:
127 if wrap_exception and func is not _helper_reraises_exception:
/usr/local/lib/python3.10/dist-packages/monai/data/dataset.py in _load_cache_item(self, idx)
890 lambda t: isinstance(t, RandomizableTrait) or not isinstance(t, Transform)
891 )
--> 892 item = self.transform(item, end=first_random, threading=True)
893
894 if self.as_contiguous:
/usr/local/lib/python3.10/dist-packages/monai/transforms/compose.py in call(self, input_, start, end, threading, lazy)
333 def call(self, input_, start=0, end=None, threading=False, lazy: bool | None = None):
334 _lazy = self.lazy if lazy is None else lazy
--> 335 result = execute_compose(
336 input,
337 transforms=self.transforms,
/usr/local/lib/python3.10/dist-packages/monai/transforms/compose.py in execute_compose(data, transforms, map_items, unpack_items, start, end, lazy, overrides, threading, log_stats)
109 if threading:
110 _transform = deepcopy(_transform) if isinstance(_transform, ThreadUnsafe) else _transform
--> 111 data = apply_transform(
112 _transform, data, map_items, unpack_items, lazy=lazy, overrides=overrides, log_stats=log_stats
113 )
/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 0x797802e1b6a0>
Beta Was this translation helpful? Give feedback.
All reactions