{ "imports": [ "$import glob", "$import os" ], "bundle_root": ".", "output_dir": "$os.path.join(@bundle_root, 'eval')", "dataset_dir": "/workspace/data/medical/pathology", "testing_file": "$os.path.join(@bundle_root, 'testing.csv')", "wsi_reader": "cuCIM", "patch_size": [ 224, 224 ], "number_intensity_ch": 3, "device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')", "network_def": { "_target_": "TorchVisionFCModel", "model_name": "resnet18", "num_classes": 1, "use_conv": true, "pretrained": true }, "network": "$@network_def.to(@device)", "preprocessing": { "_target_": "Compose", "transforms": [ { "_target_": "CastToTyped", "keys": "image", "dtype": "float32" }, { "_target_": "ScaleIntensityRanged", "keys": "image", "a_min": 0.0, "a_max": 255.0, "b_min": -1.0, "b_max": 1.0 }, { "_target_": "ToTensord", "keys": "image" } ] }, "datalist": { "_target_": "CSVDataset", "src": "@testing_file", "kwargs_read_csv": { "names": [ "image" ], "header": null }, "transform": { "_target_": "Lambdad", "keys": "image", "func": "$lambda x: os.path.join(@dataset_dir, 'testing/images', x + '.tif')" } }, "dataset": { "_target_": "MaskedPatchWSIDataset", "data": "@datalist", "mask_level": 6, "patch_size": "@patch_size", "transform": "@preprocessing", "reader": "@wsi_reader" }, "dataloader": { "_target_": "DataLoader", "dataset": "@dataset", "batch_size": 400, "shuffle": false, "num_workers": 8 }, "inferer": { "_target_": "SimpleInferer" }, "postprocessing": { "_target_": "Compose", "transforms": [ { "_target_": "EnsureTyped", "keys": "pred" }, { "_target_": "Activationsd", "keys": "pred", "sigmoid": true }, { "_target_": "ToNumpyd", "keys": "pred" } ] }, "handlers": [ { "_target_": "CheckpointLoader", "load_path": "$@bundle_root + '/models/model.pt'", "load_dict": { "model": "@network" } }, { "_target_": "StatsHandler", "tag_name": "progress", "iteration_print_logger": "$lambda engine: print(f'image: \"{engine.state.batch[\"image\"].meta[\"name\"][0]}\", iter: {engine.state.iteration}/{engine.state.epoch_length}') if engine.state.iteration % 100 == 0 else None", "output_transform": "$lambda x: None" }, { "_target_": "monai.handlers.ProbMapProducer", "output_dir": "@output_dir" } ], "evaluator": { "_target_": "SupervisedEvaluator", "device": "@device", "val_data_loader": "@dataloader", "network": "@network", "inferer": "@inferer", "postprocessing": "@postprocessing", "val_handlers": "@handlers", "amp": true, "decollate": false }, "run": [ "$@evaluator.run()" ] }