Search code examples
niftynet

Don't know how to generate sampling locations:


How are the dimensions generated in the uniform sampler? I tried debugging the image size it seems it works for some of the iterations it does not for others. Any idea how to fix this. My configuration is given below :

[CUSTOM]

  • num_classes: 14

  • output_prob: True

  • label_normalisation: True

  • softmax: True

  • min_sampling_ratio: 0

  • compulsory_labels: (0, 1)

  • rand_samples: 0

  • min_numb_labels: 1

  • proba_connect: True

  • evaluation_units: foreground

  • image: ('images',)

  • label: ('label',)

  • weight: ()

  • sampler: ()

  • inferred: ()

name: net_segment

[CONFIG_FILE]

  • path: /home/ubuntu/niftynet/extensions/deepmedic/deepmedic_all_task_renambed_labels.ini

[IMAGES]

  • csv_file:

  • path_to_search: /home/ubuntu/med_deacthalon/Task_all_same_names/imagesTr_1

  • filename_contains: ()

  • filename_not_contains: ('lung',)

  • interp_order: 3

  • loader: None

  • pixdim: (1.0, 1.0, 1.0)

  • axcodes: ('A', 'R', 'S')

  • spatial_window_size: (51, 51, 51)

[LABEL]

-csv_file:

  • path_to_search: /home/ubuntu/med_deacthalon/Task_all_same_names/labelsTr_1

  • filename_contains: ()

  • filename_not_contains: ('lung',)

  • interp_order: 3

  • loader: None

  • pixdim: (1.0, 1.0, 1.0)

  • axcodes: ('A', 'R', 'S')

  • spatial_window_size: (9, 9, 9)

[SYSTEM]

  • cuda_devices: ""

  • num_threads: 2

  • num_gpus: 1

  • model_dir: /home/ubuntu/models_nifty/deepmedic/all_task_same_name_rename_labels

  • dataset_split_file: ./dataset_split.csv

  • action: train

[NETWORK]

  • name: deepmedic

  • activation_function: relu

  • batch_size: 32

  • decay: 0.0

  • reg_type: L2

  • volume_padding_size: (21, 21, 21)

  • volume_padding_mode: minimum

  • window_sampling: uniform

  • queue_length: 128

  • multimod_foreground_type: and

  • histogram_ref_file: histogram_standardisation_alltask.txt

  • norm_type: percentile

  • cutoff: (0.01, 0.99)

  • foreground_type: otsu_plus

  • normalisation: False

  • whitening: True

  • normalise_foreground_only: True

  • weight_initializer: he_normal

  • bias_initializer: zeros

  • keep_prob: 1.0

  • weight_initializer_args: {}

  • bias_initializer_args: {}

[TRAINING]

  • optimiser: adam

  • sample_per_volume: 32

  • rotation_angle: (-10.0, 10.0)

  • rotation_angle_x: ()

  • rotation_angle_y: ()

  • rotation_angle_z: ()

  • scaling_percentage: (-10.0, 10.0)

  • random_flipping_axes: -1

  • do_elastic_deformation: False

  • num_ctrl_points: 4

  • deformation_sigma: 15

  • proportion_to_deform: 0.5

  • lr: 0.001

  • loss_type: Dice

  • starting_iter: 0

  • save_every_n: 45

  • tensorboard_every_n: 20

  • max_iter: 10

  • max_checkpoints: 20

  • validation_every_n: -1

  • validation_max_iter: 1

  • exclude_fraction_for_validation: 0.0

  • exclude_fraction_for_inference: 0.0

[INFERENCE]

  • spatial_window_size: (57, 57, 57)

  • inference_iter: -1

  • dataset_to_infer:

  • save_seg_dir: ./deepmedic/alltask_newname

  • output_postfix: _niftynet_out

  • output_interp_order: 0

  • border: (36, 36, 36)

CRITICAL:niftynet: Don't know how to generate sampling locations: Spatial dimensions of the grouped input sources are not consistent. {(477, 451, 187), (391, 369, 147)} Exception in thread Thread-2: Traceback (most recent call last): File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/threading.py", line 916, in _bootstrap_inner self.run() File "/home/ubuntu/anaconda3/envs/python3/lib/python3.6/threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/image_window_buffer.py", line 148, in _push for output_dict in self(): File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/sampler_uniform.py", line 81, in layer_op self.window.n_samples) File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/sampler_uniform.py", line 151, in _spatial_coordinates_generator _infer_spatial_size(img_sizes, win_sizes) File "/home/ubuntu/niftynet/NiftyNet/niftynet/engine/sampler_uniform.py", line 238, in _infer_spatial_size raise NotImplementedError NotImplementedError


Solution

  • The issue is resolved here: https://github.com/NifTK/NiftyNet/issues/170

    In summary images and labels should have the same voxel spacing values stored in their header when pixdim is set in the configuration file.