title: What is the best way to save a keras model to resume training in the future?
body: <p>I've searched about this a lot. In keras documentation it says that model.save() saves all the relevant info, i.e. model architecture, weights, optimizer state,...</p>
  
  <p>Some other posts here on stackoverflow, mentioned saving the weights and loading them in the future to resume training, but the answers said that it's wrong, because it's not saving the optimizer state.
  I use callbacks to save best model base om validation accuracy, and it only save weights. </p>
  
  <p>If weights aren't enough to resume training, why does call backs only save weights? Just for evaluating on the test set?</p>
  
  <p>How can I properly save the best model then? Why doesn't call backs use model.save() to store all the info? How can i achieve this?</p>