| { | |
| "imports": [ | |
| "$import os", | |
| "$import glob", | |
| "$import torch", | |
| "$import scripts" | |
| ], | |
| "bundle_root": ".", | |
| "ckpt_path": "$@bundle_root + '/models/model.pt'", | |
| "device": "$torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')", | |
| "dataset_dir": "/workspace/data", | |
| "datalist": "$list(sorted(glob.glob(@dataset_dir + '/*.nii*')))", | |
| "output_dir": "./output", | |
| "network_def": { | |
| "_target_": "scripts.valve_landmarks.PointRegressor", | |
| "in_shape": [ | |
| 1, | |
| 256, | |
| 256 | |
| ], | |
| "out_shape": [ | |
| 2, | |
| 10 | |
| ], | |
| "channels": [ | |
| 8, | |
| 16, | |
| 32, | |
| 64, | |
| 128 | |
| ], | |
| "strides": [ | |
| 2, | |
| 2, | |
| 2, | |
| 2, | |
| 2 | |
| ] | |
| }, | |
| "network": "$@network_def.to(@device)", | |
| "preprocessing": { | |
| "_target_": "Compose", | |
| "transforms": [ | |
| { | |
| "_target_": "LoadImage", | |
| "image_only": "true" | |
| }, | |
| { | |
| "_target_": "EnsureType", | |
| "device": "@device" | |
| }, | |
| { | |
| "_target_": "Transpose", | |
| "indices": [ | |
| 2, | |
| 0, | |
| 1, | |
| 3 | |
| ] | |
| }, | |
| { | |
| "_target_": "ScaleIntensity" | |
| } | |
| ] | |
| }, | |
| "dataset": { | |
| "_target_": "Dataset", | |
| "data": "@datalist", | |
| "transform": "@preprocessing" | |
| }, | |
| "dataloader": { | |
| "_target_": "DataLoader", | |
| "dataset": "@dataset", | |
| "batch_size": 1, | |
| "shuffle": false, | |
| "num_workers": 0 | |
| }, | |
| "inferer": { | |
| "_target_": "scripts.valve_landmarks.LandmarkInferer", | |
| "spatial_dim": 2, | |
| "stack_dim": 1 | |
| }, | |
| "postprocessing": { | |
| "_target_": "Compose", | |
| "transforms": [ | |
| { | |
| "_target_": "SqueezeDimd", | |
| "keys": "pred", | |
| "dim": 0 | |
| }, | |
| { | |
| "_target_": "scripts.valve_landmarks.NpySaverd", | |
| "keys": "pred", | |
| "output_dir": "@output_dir", | |
| "data_root_dir": "@dataset_dir" | |
| } | |
| ] | |
| }, | |
| "handlers": [ | |
| { | |
| "_target_": "CheckpointLoader", | |
| "_disabled_": "$not os.path.exists(@ckpt_path)", | |
| "load_path": "@ckpt_path", | |
| "load_dict": { | |
| "net": "@network" | |
| } | |
| } | |
| ], | |
| "evaluator": { | |
| "_target_": "SupervisedEvaluator", | |
| "device": "@device", | |
| "val_data_loader": "@dataloader", | |
| "network": "@network", | |
| "inferer": "@inferer", | |
| "postprocessing": "@postprocessing", | |
| "val_handlers": "@handlers", | |
| "decollate": false, | |
| "prepare_batch": "$lambda batch, dev,nb: (batch.to(dev),())" | |
| }, | |
| "evaluating": [ | |
| "$@evaluator.run()" | |
| ] | |
| } | |