I used seed, the code is as follows:
seed_num = 123
random.seed(seed_num)
torch.manual_seed(seed_num)
np.random.seed(seed_num)

If I run the code from scratch twice, the accuracy of the same epoch on the development set is the same.
Training from the breakpoint caused a change in the data shuffle order (the first epoch followed by training from the checkpoint at the end of the second epoch training is different from the data shuffle order of the third epoch training from scratch), I guess this It is the reason that the accuracy of the same epoch model on the development set is different. How to make the data shuffle when training from the checkpoint the same as training from the scratch?