Graceful interrupt not graceful
The current key interrupt will call on_train_end which will save the checkpoint. However when resuming from the saved checkpoint, it starts a new epoch, which is not graceful: presumably it should restart from the middle of the epoch(ideally); otherwise it should not save the interrupted checkpoint with the same name as normal checkpoints (for example, save as a new name).