class_docstr: Restore the weights of the best model at the end of the training depending on a monitored quantity.
  
  Args:
      monitor (str): Quantity to monitor. (Default value = 'val_loss')
      mode (str): One of {'min', 'max'}.
          Whether the monitored has to be maximized or minimized. For instance, for `val_accuracy`,
          this should be `max`, and for `val_loss`, this should be `min`, etc.
          (Default value = 'min')
      verbose (bool): Whether to display a message when the model has improved or when restoring
          the best model.
          (Default value = False)
code: def on_train_end(self, logs: Dict):
      if self.best_weights is not None:
          if self.verbose:
              print("Restoring best model")
          self.model.set_weights(self.best_weights)
      else:
          warnings.warn("No weights to restore!")
  
imports: import warnings
  from typing import Dict
  from poutyne.framework.callbacks.callbacks import Callback
label_desc: Use image node_id 3 for calling the BestModelRestore obj's underlying member method code with example usage: obj.on_train_end(logs) without return types