Skip to content

_save_debug_information() prints "dataloader_train.transform": "None" everytime despite augmentation applied #2933

@anan1504

Description

@anan1504

As in the title, the debug transform info is always set to None.
I modified the debug function to print the actual augmentations applied. Figured it would be useful to someone else, especially when you're playing around with the augmentations its useful to log them:

Add one extra check in _save_debug_information() to include the internal data loader’s transforms:

if k in ['dataloader_train', 'dataloader_val']:
if hasattr(getattr(self, k), 'generator'):
dct[k + '.generator'] = str(getattr(self, k).generator)
if hasattr(getattr(self, k), 'num_processes'):
dct[k + '.num_processes'] = str(getattr(self, k).num_processes)
if hasattr(getattr(self, k), 'transform'):
dct[k + '.transform'] = str(getattr(self, k).transform)

Suggested edit:

  if k in ['dataloader_train', 'dataloader_val']:
      if hasattr(getattr(self, k), 'generator'):
          dct[k + '.generator'] = str(getattr(self, k).generator)
          if hasattr(dl.generator, 'transforms'):
              try:
                  dct[k + '.generator.transforms'] = str(getattr(self, k).generator.transforms)
              except Exception as e:
                  dct[k + '.generator.transforms'] = f"Could not stringify generator.transforms: {e}"

      if hasattr(getattr(self, k), 'num_processes'):
          dct[k + '.num_processes'] = str(getattr(self, k).num_processes)
      if hasattr(getattr(self, k), 'transform'):
          dct[k + '.transform'] = str(getattr(self, k).transform)

So previously in the debug.json I would get:

"dataloader_train": "<batchgenerators.dataloading.nondet_multi_threaded_augmenter.NonDetMultiThreadedAugmenter object at 0x00000255CFF9C890>",
    "dataloader_train.generator": "<nnunetv2.training.dataloading.data_loader.nnUNetDataLoader object at 0x00000255CDD05DC0>",
    "dataloader_train.num_processes": "12",
    "dataloader_train.transform": "None",

Now I get:

"dataloader_train": "<batchgenerators.dataloading.nondet_multi_threaded_augmenter.NonDetMultiThreadedAugmenter object at 0x000002704922E060>",
    "dataloader_train.generator": "<nnunetv2.training.dataloading.data_loader.nnUNetDataLoader object at 0x000002704946E930>",
    "dataloader_train.generator.transforms": "ComposeTransforms( transforms = [Convert3DTo2DTransform(  ), SpatialTransform( patch_size = [192, 192], patch_center_dist_from_border = [0, 0], random_crop = False, p_elastic_deform = 0, elastic_deform_scale = (0, 0.2), elastic_deform_magnitude = (0, 0.2), p_rotation = 0.2, rotation = (-3.141592653589793, 3.141592653589793), p_scaling = 0.4, scaling = (0.7, 1.8), p_synchronize_scaling_across_axes = 1, p_synchronize_def_scale_across_axes = 0, bg_style_seg_sampling = False, mode_seg = 'bilinear', border_mode_seg = 'zeros', center_deformation = True, padding_mode_image = 'zeros' ), Convert2DTo3DTransform(  ), RandomTransform(p=0.3, transform=GaussianNoiseTransform( noise_variance = (0, 0.2), p_per_channel = 1, synchronize_channels = True )), RandomTransform(p=0.3, transform=GaussianBlurTransform( blur_sigma = (0.5, 1.0), benchmark = True, synchronize_channels = False, synchronize_axes = False, p_per_channel = 0.5, benchmark_use_fft = {}, benchmark_num_runs = 9 )), RandomTransform(p=0.15, transform=MultiplicativeBrightnessTransform( multiplier_range = BGContrast(contrast_range=(0.75, 1.25)), synchronize_channels = False, p_per_channel = 1 )), RandomTransform(p=0.15, transform=ContrastTransform( contrast_range = BGContrast(contrast_range=(0.75, 1.25)), preserve_range = True, synchronize_channels = False, p_per_channel = 1 )), RandomTransform(p=0.25, transform=SimulateLowResolutionTransform( scale = (0.5, 1), synchronize_channels = False, synchronize_axes = True, ignore_axes = (0,), allowed_channels = None, p_per_channel = 0.5, upmodes = {1: 'linear', 2: 'bilinear', 3: 'trilinear'} )), RandomTransform(p=0.1, transform=GammaTransform( gamma = BGContrast(contrast_range=(0.7, 1.5)), p_invert_image = 1, synchronize_channels = False, p_per_channel = 1, p_retain_stats = 1 )), RandomTransform(p=0.3, transform=GammaTransform( gamma = BGContrast(contrast_range=(0.7, 1.5)), p_invert_image = 0, synchronize_channels = False, p_per_channel = 1, p_retain_stats = 1 )), RemoveLabelTansform( segmentation_channels = None, label_value = -1, set_to = 0 ), DownsampleSegForDSTransform( ds_scales = [[np.float64(1.0), np.float64(1.0), np.float64(1.0)], [np.float64(1.0), np.float64(0.5), np.float64(0.5)], [np.float64(0.5), np.float64(0.25), np.float64(0.25)], [np.float64(0.25), np.float64(0.125), np.float64(0.125)], [np.float64(0.125), np.float64(0.0625), np.float64(0.0625)]] )] )",
    "dataloader_train.num_processes": "12",
    "dataloader_train.transform": "None",
    

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions