in utils/checkpoint.py [0:0]
def save(args, model, optimizer, logger, scheduler):
if args.checkpoint != "":
if os.path.exists(args.checkpoint):
if (
args.checkpoint_freq > 0
and args.ep > 0
and args.ep % args.checkpoint_freq == 0
):
try:
shutil.copyfile(
args.checkpoint, args.checkpoint + "." + str(args.ep)
)
except:
print("save copy failed")
# make a backup in case this save fails
os.replace(args.checkpoint, args.checkpoint + ".bak")
f = dict()
f["epoch"] = args.ep + 1
f["model"] = model.state_dict()
f["logger"] = logger.get_state()
f["optimizer"] = optimizer.state_dict()
if scheduler is not None:
f["scheduler_epoch"] = scheduler.last_epoch
torch.save(f, args.checkpoint)