(self)
| 741 | self._atomic_save(checkpoint, filepath) |
| 742 | |
| 743 | def dump_checkpoint(self): |
| 744 | |
| 745 | checkpoint = { |
| 746 | 'epoch': self.current_epoch, |
| 747 | 'global_step': self.global_step |
| 748 | } |
| 749 | |
| 750 | if self.checkpoint_callback is not None and self.checkpoint_callback is not False: |
| 751 | checkpoint['checkpoint_callback_best'] = self.checkpoint_callback.best |
| 752 | |
| 753 | # save optimizers |
| 754 | optimizer_states = [] |
| 755 | for i, optimizer in enumerate(self.optimizers): |
| 756 | if optimizer is not None: |
| 757 | optimizer_states.append(optimizer.state_dict()) |
| 758 | |
| 759 | checkpoint['optimizer_states'] = optimizer_states |
| 760 | |
| 761 | # save lr schedulers |
| 762 | lr_schedulers = [] |
| 763 | for i, scheduler in enumerate(self.lr_schedulers): |
| 764 | lr_schedulers.append(scheduler.state_dict()) |
| 765 | |
| 766 | checkpoint['lr_schedulers'] = lr_schedulers |
| 767 | |
| 768 | # add the hparams and state_dict from the model |
| 769 | model = self.get_model() |
| 770 | checkpoint['state_dict'] = model.state_dict() |
| 771 | # give the model a chance to add a few things |
| 772 | model.on_save_checkpoint(checkpoint) |
| 773 | |
| 774 | return checkpoint |
| 775 | |
| 776 | def copy_trainer_model_properties(self, model): |
| 777 | if isinstance(model, DP): |
no test coverage detected