Does a Keras checkpointer save the best weights when using chekpoints with restore_best_weights?
It will if you set the save_best_only flag in your checkpoint callback definition:

ModelCheckpoint(filepath, monitor='val_loss', save_best_only=True)


From the docs:


  save_best_only: if save_best_only=True, the latest best model
  according to the quantity monitored will not be overwritten.