|
|
|
|
|
imports: |
|
- $import os |
|
- $import torch |
|
- $import glob |
|
|
|
|
|
image: $monai.utils.CommonKeys.IMAGE |
|
pred: $monai.utils.CommonKeys.PRED |
|
|
|
|
|
batch_size: 1 |
|
num_workers: 0 |
|
num_classes: 4 |
|
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))))' |
|
|
|
data_dicts: '$[{@image:i} for i in @data_list]' |
|
|
|
|
|
transforms: |
|
- _target_: LoadImaged |
|
keys: '@image' |
|
image_only: true |
|
- _target_: EnsureChannelFirstd |
|
keys: '@image' |
|
- _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 |
|
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' |
|
inferer: '@inferer' |
|
postprocessing: '@postprocessing' |
|
val_handlers: '@handlers' |
|
|
|
run: |
|
- $@evaluator.run() |
|
|