monai
medical
File size: 2,767 Bytes
618f7d3
 
 
 
 
 
 
 
49f392e
618f7d3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
49f392e
618f7d3
49f392e
618f7d3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
---
imports:
- "$import glob"
- "$import os"
input_channels: 1
output_classes: 3
arch_ckpt_path: "$@bundle_root + '/models/search_code_18590.pt'"
arch_ckpt: "$torch.load(@arch_ckpt_path, map_location=torch.device('cuda'))"
bundle_root: "."
output_dir: "$@bundle_root + '/eval'"
dataset_dir: "/workspace/data/msd/Task07_Pancreas"
data_list_file_path: "$@bundle_root + '/configs/dataset_0.json'"
datalist: "$monai.data.load_decathlon_datalist(@data_list_file_path, data_list_key='testing',
  base_dir=@dataset_dir)"
device: "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')"
dints_space:
  _target_: monai.networks.nets.TopologyInstance
  channel_mul: 1
  num_blocks: 12
  num_depths: 4
  use_downsample: true
  arch_code:
  - "$@arch_ckpt['arch_code_a']"
  - "$@arch_ckpt['arch_code_c']"
  device: "$torch.device('cuda')"
network_def:
  _target_: monai.networks.nets.DiNTS
  dints_space: "@dints_space"
  in_channels: "@input_channels"
  num_classes: "@output_classes"
  use_downsample: true
  node_a: "$torch.from_numpy(@arch_ckpt['node_a'])"
network: "$@network_def.to(@device)"
preprocessing:
  _target_: Compose
  transforms:
  - _target_: LoadImaged
    keys: image
  - _target_: EnsureChannelFirstd
    keys: image
  - _target_: Orientationd
    keys: image
    axcodes: RAS
  - _target_: Spacingd
    keys: image
    pixdim:
    - 1
    - 1
    - 1
    mode: bilinear
  - _target_: ScaleIntensityRanged
    keys: image
    a_min: -87
    a_max: 199
    b_min: 0
    b_max: 1
    clip: true
  - _target_: EnsureTyped
    keys: image
dataset:
  _target_: Dataset
  data: "@datalist"
  transform: "@preprocessing"
dataloader:
  _target_: DataLoader
  dataset: "@dataset"
  batch_size: 1
  shuffle: false
  num_workers: 4
inferer:
  _target_: SlidingWindowInferer
  roi_size:
  - 96
  - 96
  - 96
  sw_batch_size: 4
  overlap: 0.625
postprocessing:
  _target_: Compose
  transforms:
  - _target_: Activationsd
    keys: pred
    softmax: true
  - _target_: Invertd
    keys: pred
    transform: "@preprocessing"
    orig_keys: image
    meta_key_postfix: meta_dict
    nearest_interp: false
    to_tensor: true
  - _target_: AsDiscreted
    keys: pred
    argmax: true
  - _target_: SaveImaged
    keys: pred
    meta_keys: pred_meta_dict
    output_dir: "@output_dir"
handlers:
- _target_: CheckpointLoader
  load_path: "$@bundle_root + '/models/model.pt'"
  load_dict:
    model: "@network"
- _target_: StatsHandler
  iteration_log: false
evaluator:
  _target_: SupervisedEvaluator
  device: "@device"
  val_data_loader: "@dataloader"
  network: "@network"
  inferer: "@inferer"
  postprocessing: "@postprocessing"
  val_handlers: "@handlers"
  amp: true
initialize:
- "$setattr(torch.backends.cudnn, 'benchmark', True)"
run:
- "$@evaluator.run()"