File size: 5,023 Bytes
22a3b73 |
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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
{
"val_images": "$list(sorted(glob.glob(@dataset_dir + '/Test/image*.npy')))",
"val_labels": "$list(sorted(glob.glob(@dataset_dir + '/Test/label*.npy')))",
"data_list": "$[{'image': i, 'label': j} for i, j in zip(@val_images, @val_labels)]",
"network_def": {
"_target_": "HoVerNet",
"mode": "@hovernet_mode",
"adapt_standard_resnet": true,
"in_channels": 3,
"out_classes": 5
},
"sw_batch_size": 16,
"validate#dataset": {
"_target_": "CacheDataset",
"data": "@data_list",
"transform": "@validate#preprocessing",
"cache_rate": 1.0,
"num_workers": 4
},
"validate#preprocessing_transforms": [
{
"_target_": "LoadImaged",
"keys": [
"image",
"label"
]
},
{
"_target_": "SplitDimd",
"keys": "label",
"output_postfixes": [
"inst",
"type"
],
"dim": -1
},
{
"_target_": "EnsureChannelFirstd",
"keys": [
"image",
"label_inst",
"label_type"
],
"channel_dim": -1
},
{
"_target_": "CastToTyped",
"keys": [
"image",
"label_inst"
],
"dtype": "$torch.int"
},
{
"_target_": "ScaleIntensityRanged",
"keys": "image",
"a_min": 0.0,
"a_max": 255.0,
"b_min": 0.0,
"b_max": 1.0,
"clip": true
},
{
"_target_": "ComputeHoVerMapsd",
"keys": "label_inst"
},
{
"_target_": "Lambdad",
"keys": "label_inst",
"func": "$lambda x: x > 0",
"overwrite": "label"
},
{
"_target_": "CastToTyped",
"keys": [
"image",
"label_inst",
"label_type"
],
"dtype": "$torch.float32"
}
],
"validate#handlers": [
{
"_target_": "CheckpointLoader",
"load_path": "$os.path.join(@bundle_root, 'models', 'model.pt')",
"load_dict": {
"model": "@network"
}
},
{
"_target_": "StatsHandler",
"output_transform": "$lambda x: None",
"iteration_log": false
},
{
"_target_": "MetricsSaver",
"save_dir": "@output_dir",
"metrics": [
"val_mean_dice"
],
"metric_details": [
"val_mean_dice"
],
"batch_transform": "$lambda x: [xx['image'].meta for xx in x]",
"summary_ops": "*"
}
],
"validate#inferer": {
"_target_": "SlidingWindowHoVerNetInferer",
"roi_size": "@patch_size",
"sw_batch_size": "@sw_batch_size",
"overlap": "$1.0 - float(@out_size) / float(@patch_size)",
"padding_mode": "constant",
"cval": 0,
"progress": true,
"extra_input_padding": "$((@patch_size - @out_size) // 2,) * 4"
},
"postprocessing_pred": {
"_target_": "Compose",
"transforms": [
{
"_target_": "HoVerNetInstanceMapPostProcessingd",
"sobel_kernel_size": 21,
"marker_threshold": 0.5,
"marker_radius": 2,
"device": "@device"
},
{
"_target_": "HoVerNetNuclearTypePostProcessingd",
"device": "@device"
},
{
"_target_": "SaveImaged",
"keys": "instance_map",
"meta_keys": "image_meta_dict",
"output_ext": ".nii.gz",
"output_dir": "@output_dir",
"output_postfix": "instance_map",
"output_dtype": "uint32",
"separate_folder": false
},
{
"_target_": "SaveImaged",
"keys": "type_map",
"meta_keys": "image_meta_dict",
"output_ext": ".nii.gz",
"output_dir": "@output_dir",
"output_postfix": "type_map",
"output_dtype": "uint8",
"separate_folder": false
},
{
"_target_": "Lambdad",
"keys": "instance_map",
"func": "$lambda x: x > 0",
"overwrite": "nucleus_prediction"
}
]
},
"validate#postprocessing": {
"_target_": "Lambdad",
"keys": "pred",
"func": "@postprocessing_pred"
},
"initialize": [
"$setattr(torch.backends.cudnn, 'benchmark', True)"
],
"run": [
"$@validate#evaluator.run()"
]
}
|