| 57 | self._numpy_version = None |
| 58 | |
| 59 | def initialize(self): |
| 60 | set_determinism(0) |
| 61 | if self._version is None: |
| 62 | self._version = "0.1.0" |
| 63 | |
| 64 | if self._monai_version is None: |
| 65 | self._monai_version = "1.1.0" |
| 66 | |
| 67 | if self._pytorch_version is None: |
| 68 | self._pytorch_version = "2.3.0" |
| 69 | |
| 70 | if self._numpy_version is None: |
| 71 | self._numpy_version = "1.22.2" |
| 72 | |
| 73 | if self._preprocessing is None: |
| 74 | self._preprocessing = Compose( |
| 75 | [LoadImaged(keys="image"), EnsureChannelFirstd(keys="image"), ScaleIntensityd(keys="image")] |
| 76 | ) |
| 77 | self._dataset = Dataset(data=self._data, transform=self._preprocessing) |
| 78 | dataloader = DataLoader(self._dataset, batch_size=1, num_workers=4) |
| 79 | |
| 80 | if self._network_def is None: |
| 81 | self._network_def = UNet( |
| 82 | spatial_dims=3, |
| 83 | in_channels=1, |
| 84 | out_channels=2, |
| 85 | channels=[2, 2, 4, 8, 4], |
| 86 | strides=[2, 2, 2, 2], |
| 87 | num_res_units=2, |
| 88 | norm="batch", |
| 89 | ) |
| 90 | if self._inferer is None: |
| 91 | self._inferer = SlidingWindowInferer(roi_size=(64, 64, 32), sw_batch_size=4, overlap=0.25) |
| 92 | |
| 93 | if self._postprocessing is None: |
| 94 | self._postprocessing = Compose( |
| 95 | [ |
| 96 | Activationsd(keys="pred", softmax=True), |
| 97 | AsDiscreted(keys="pred", argmax=True), |
| 98 | SaveImaged(keys="pred", output_dir=self.output_dir, output_postfix="seg"), |
| 99 | ] |
| 100 | ) |
| 101 | |
| 102 | self._evaluator = SupervisedEvaluator( |
| 103 | device=self._device, |
| 104 | val_data_loader=dataloader, |
| 105 | network=self._network_def.to(self._device), |
| 106 | inferer=self._inferer, |
| 107 | postprocessing=self._postprocessing, |
| 108 | amp=False, |
| 109 | ) |
| 110 | |
| 111 | def run(self): |
| 112 | self._evaluator.run() |