| |
|
|
| imports: |
| - $import os |
| - $import datetime |
| - $import torch |
| - $import glob |
|
|
| |
| image: $monai.utils.CommonKeys.IMAGE |
| label: $monai.utils.CommonKeys.LABEL |
| pred: $monai.utils.CommonKeys.PRED |
| both_keys: ['@image', '@label'] |
|
|
| |
| batch_size: 1 |
| num_workers: 0 |
| num_classes: 4 |
| save_pred: false |
| device: $torch.device('cuda:0' if torch.cuda.is_available() else 'cpu') |
|
|
| |
| bundle_root: . |
| ckpt_path: $@bundle_root + '/models/model.pt' |
| dataset_dir: $@bundle_root + '/test_data' |
| output_dir: './outputs' |
|
|
| |
| network_def: |
| _target_: UNet |
| spatial_dims: 3 |
| in_channels: 1 |
| out_channels: '@num_classes' |
| channels: [8, 16, 32, 64] |
| strides: [2, 2, 2] |
| num_res_units: 2 |
| network: $@network_def.to(@device) |
|
|
| |
| file_pattern: '*.nii*' |
| data_list: '$list(sorted(glob.glob(os.path.join(@dataset_dir, @file_pattern))))' |
| |
| imgs: '$sorted(glob.glob(@dataset_dir+''/img*.nii.gz''))' |
| lbls: '$[i.replace(''img'',''lbl'') for i in @imgs]' |
| data_dicts: '$[{@image: i, @label: l} for i, l in zip(@imgs, @lbls)]' |
|
|
| |
| transforms: |
| - _target_: LoadImaged |
| keys: '@both_keys' |
| image_only: true |
| - _target_: EnsureChannelFirstd |
| keys: '@both_keys' |
| - _target_: ScaleIntensityd |
| keys: '@image' |
|
|
| preprocessing: |
| _target_: Compose |
| transforms: $@transforms |
|
|
| dataset: |
| _target_: Dataset |
| data: '@data_dicts' |
| transform: '@preprocessing' |
|
|
| dataloader: |
| _target_: ThreadDataLoader |
| dataset: '@dataset' |
| batch_size: '@batch_size' |
| num_workers: '@num_workers' |
|
|
| |
| inferer: |
| _target_: SimpleInferer |
|
|
| |
| postprocessing: |
| _target_: Compose |
| transforms: |
| - _target_: Activationsd |
| keys: '@pred' |
| softmax: true |
| - _target_: AsDiscreted |
| keys: '@pred' |
| argmax: true |
| - _target_: SaveImaged |
| _disabled_: '$not @save_pred' |
| keys: '@pred' |
| meta_keys: pred_meta_dict |
| data_root_dir: '@dataset_dir' |
| output_dir: '@output_dir' |
| dtype: $None |
| output_dtype: $None |
| output_postfix: '' |
| resample: false |
| separate_folder: true |
|
|
| |
| handlers: |
| - _target_: CheckpointLoader |
| _disabled_: $not os.path.exists(@ckpt_path) |
| load_path: '@ckpt_path' |
| load_dict: |
| model: '@network' |
| - _target_: StatsHandler |
| name: null |
| output_transform: '$lambda x: None' |
|
|
| |
| evaluator: |
| _target_: SupervisedEvaluator |
| device: '@device' |
| val_data_loader: '@dataloader' |
| network: '@network' |
| postprocessing: '@postprocessing' |
| key_val_metric: |
| val_mean_dice: |
| _target_: MeanDice |
| include_background: false |
| output_transform: $monai.handlers.from_engine([@pred, @label]) |
| val_handlers: '@handlers' |
|
|
| run: |
| - $@evaluator.run() |
| - '$print(''Per-image Dice:\n'',@evaluator.state.metric_details[''val_mean_dice''].cpu().numpy())' |
|
|