| 232 | return os.path.join(filepath, prepend + "patchcore_params.pkl") |
| 233 | |
| 234 | def save_to_path(self, save_path: str, prepend: str = "") -> None: |
| 235 | LOGGER.info("Saving PatchCore data.") |
| 236 | self.anomaly_scorer.save( |
| 237 | save_path, save_features_separately=False, prepend=prepend |
| 238 | ) |
| 239 | patchcore_params = { |
| 240 | "backbone.name": self.backbone.name, |
| 241 | "layers_to_extract_from": self.layers_to_extract_from, |
| 242 | "input_shape": self.input_shape, |
| 243 | "pretrain_embed_dimension": self.forward_modules[ |
| 244 | "preprocessing" |
| 245 | ].output_dim, |
| 246 | "target_embed_dimension": self.forward_modules[ |
| 247 | "preadapt_aggregator" |
| 248 | ].target_dim, |
| 249 | "patchsize": self.patch_maker.patchsize, |
| 250 | "patchstride": self.patch_maker.stride, |
| 251 | "anomaly_scorer_num_nn": self.anomaly_scorer.n_nearest_neighbours, |
| 252 | } |
| 253 | with open(self._params_file(save_path, prepend), "wb") as save_file: |
| 254 | pickle.dump(patchcore_params, save_file, pickle.HIGHEST_PROTOCOL) |
| 255 | |
| 256 | def load_from_path( |
| 257 | self, |