{ "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": "$monai.handlers.from_engine(['image_meta_dict'])", "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()" ] }