(self, save_name, save_path)
| 373 | 'eval/precision': precision, 'eval/recall': recall, 'eval/F1': F1, 'eval/AUC': AUC} |
| 374 | |
| 375 | def save_model(self, save_name, save_path): |
| 376 | save_filename = os.path.join(save_path, save_name) |
| 377 | # copy EMA parameters to ema_model for saving with model as temp |
| 378 | self.model.eval() |
| 379 | self.ema.apply_shadow() |
| 380 | ema_model = self.model.state_dict() |
| 381 | self.ema.restore() |
| 382 | self.model.train() |
| 383 | |
| 384 | torch.save({'model': self.model.state_dict(), |
| 385 | 'optimizer': self.optimizer.state_dict(), |
| 386 | 'scheduler': self.scheduler.state_dict(), |
| 387 | 'it': self.it, |
| 388 | 'ema_model': ema_model}, |
| 389 | save_filename) |
| 390 | |
| 391 | self.print_fn(f"model saved: {save_filename}") |
| 392 | |
| 393 | def load_model(self, load_path): |
| 394 | checkpoint = torch.load(load_path) |
no test coverage detected