def save()

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)