docstr: Called at the end of training.
  Subclasses should override for any actions to run.
docstr_tok: ["Called","at","the","end","of","training",".","Subclasses","should","override","for","any","actions","to","run","."]
code: def after_run(self, runner):
      """
      Called at the end of training.
      Subclasses should override for any actions to run.
      """
      last_ckpt_path = self._format_checkpoint_name(
          dirname=self.dirname, filename=self.CHECKPOINT_NAME_LAST
      )
      previous, self.last_ckpt_path = (
          self.last_ckpt_path,
          last_ckpt_path,
      )
      runner.save_checkpoint(last_ckpt_path, self.save_weights_only)
      if previous and previous != last_ckpt_path:
          runner.remove_checkpoint(previous)
  
file_path: BigDL/python/orca/src/bigdl/orca/learn/pytorch/callbacks/model_checkpoint.py
imports: from bigdl.orca.learn.pytorch.callbacks import Callback
  import os
  import re
  import warnings
  from bigdl.dllib.utils.log4Error import invalidInputError
label_desc: Use image node_id 5 for calling the ModelCheckpoint obj's underlying member method code with example usage: obj.after_run(runner) without return types