| 254 | pickle.dump(patchcore_params, save_file, pickle.HIGHEST_PROTOCOL) |
| 255 | |
| 256 | def load_from_path( |
| 257 | self, |
| 258 | load_path: str, |
| 259 | device: torch.device, |
| 260 | nn_method: patchcore.common.FaissNN(False, 4), |
| 261 | prepend: str = "", |
| 262 | ) -> None: |
| 263 | LOGGER.info("Loading and initializing PatchCore.") |
| 264 | with open(self._params_file(load_path, prepend), "rb") as load_file: |
| 265 | patchcore_params = pickle.load(load_file) |
| 266 | patchcore_params["backbone"] = patchcore.backbones.load( |
| 267 | patchcore_params["backbone.name"] |
| 268 | ) |
| 269 | patchcore_params["backbone"].name = patchcore_params["backbone.name"] |
| 270 | del patchcore_params["backbone.name"] |
| 271 | self.load(**patchcore_params, device=device, nn_method=nn_method) |
| 272 | |
| 273 | self.anomaly_scorer.load(load_path, prepend) |
| 274 | |
| 275 | |
| 276 | # Image handling classes. |