I think the problem maybe happened like this:

The first time when you load the checkpoint, it has the old number of classes, and you need to finetune the fc layer to fit with checkpoint, load it then finetune the fc layer to your desire num_classes, and save new checkpoint.
The second training time you want to reload the new checkpoint created from first training time. But problem is now the num_classes of checkpoint is your desire num classes already. So if you do the same process like in first training time, it causes error.
Hope it help ^^