@@ -196,7 +196,7 @@ def build_train_transforms(
196196 return Compose (transforms )
197197
198198
199- def _build_eval_transforms_impl (cfg : Config , mode : str = "val" , keys : list [str ] = None ) -> Compose :
199+ def _build_eval_transforms_impl (cfg : Config , mode : str = "val" , keys : list [str ] = None , skip_loading : bool = False ) -> Compose :
200200 """
201201 Internal implementation for building evaluation transforms (validation or test).
202202
@@ -207,6 +207,7 @@ def _build_eval_transforms_impl(cfg: Config, mode: str = "val", keys: list[str]
207207 cfg: Hydra Config object
208208 mode: 'val' or 'test' mode
209209 keys: Keys to transform (default: auto-detected based on mode)
210+ skip_loading: Skip LoadVolumed (for pre-cached datasets)
210211
211212 Returns:
212213 Composed MONAI transforms (no augmentation)
@@ -259,32 +260,34 @@ def _build_eval_transforms_impl(cfg: Config, mode: str = "val", keys: list[str]
259260 transforms = []
260261
261262 # Load images first - use appropriate loader based on dataset type
262- dataset_type = getattr (cfg .data , "dataset_type" , "volume" )
263-
264- if dataset_type == "filename" :
265- # For filename-based datasets (PNG, JPG, etc.), use MONAI's LoadImaged
266- transforms .append (LoadImaged (keys = keys , image_only = False ))
267- # Ensure channel-first format [C, H, W] or [C, D, H, W]
268- transforms .append (EnsureChannelFirstd (keys = keys ))
269- else :
270- # For volume-based datasets (HDF5, TIFF volumes), use custom LoadVolumed
271- # Get transpose axes based on mode
272- if mode == "val" :
273- transpose_axes = cfg .data .val_transpose if cfg .data .val_transpose else []
274- else : # mode == "test"
275- # Use test.data.test_transpose
276- transpose_axes = []
277- if (
278- hasattr (cfg , "test" )
279- and hasattr (cfg .test , "data" )
280- and hasattr (cfg .test .data , "test_transpose" )
281- and cfg .test .data .test_transpose
282- ):
283- transpose_axes = cfg .test .data .test_transpose
263+ # Skip loading if using pre-cached datasets
264+ if not skip_loading :
265+ dataset_type = getattr (cfg .data , "dataset_type" , "volume" )
284266
285- transforms .append (
286- LoadVolumed (keys = keys , transpose_axes = transpose_axes if transpose_axes else None )
287- )
267+ if dataset_type == "filename" :
268+ # For filename-based datasets (PNG, JPG, etc.), use MONAI's LoadImaged
269+ transforms .append (LoadImaged (keys = keys , image_only = False ))
270+ # Ensure channel-first format [C, H, W] or [C, D, H, W]
271+ transforms .append (EnsureChannelFirstd (keys = keys ))
272+ else :
273+ # For volume-based datasets (HDF5, TIFF volumes), use custom LoadVolumed
274+ # Get transpose axes based on mode
275+ if mode == "val" :
276+ transpose_axes = cfg .data .val_transpose if cfg .data .val_transpose else []
277+ else : # mode == "test"
278+ # Use test.data.test_transpose
279+ transpose_axes = []
280+ if (
281+ hasattr (cfg , "test" )
282+ and hasattr (cfg .test , "data" )
283+ and hasattr (cfg .test .data , "test_transpose" )
284+ and cfg .test .data .test_transpose
285+ ):
286+ transpose_axes = cfg .test .data .test_transpose
287+
288+ transforms .append (
289+ LoadVolumed (keys = keys , transpose_axes = transpose_axes if transpose_axes else None )
290+ )
288291
289292 # Apply volumetric split if enabled
290293 if cfg .data .split_enabled :
@@ -441,18 +444,19 @@ def _build_eval_transforms_impl(cfg: Config, mode: str = "val", keys: list[str]
441444 return Compose (transforms )
442445
443446
444- def build_val_transforms (cfg : Config , keys : list [str ] = None ) -> Compose :
447+ def build_val_transforms (cfg : Config , keys : list [str ] = None , skip_loading : bool = False ) -> Compose :
445448 """
446449 Build validation transforms from Hydra config.
447450
448451 Args:
449452 cfg: Hydra Config object
450453 keys: Keys to transform (default: auto-detected as ['image', 'label'])
454+ skip_loading: Skip LoadVolumed (for pre-cached datasets)
451455
452456 Returns:
453457 Composed MONAI transforms (no augmentation, center cropping)
454458 """
455- return _build_eval_transforms_impl (cfg , mode = "val" , keys = keys )
459+ return _build_eval_transforms_impl (cfg , mode = "val" , keys = keys , skip_loading = skip_loading )
456460
457461
458462def build_test_transforms (cfg : Config , keys : list [str ] = None ) -> Compose :
0 commit comments