1、参数设置一个标志:

        resume:是否进行续训

        initepoch:断点位置的epoch
2、checkpoint载入:

 resume = True
    initepoch = 0
    if resume:
        if os.path.isfile(os.path.join(args.save_model_path, 'latest_dice_loss.pth')) or os.path.join(
                args.save_model_path, 'latest_dice_loss.pth'):
            print("Resume from checkpoint...")
            checkpoint = torch.load(os.path.join(args.save_model_path, 'latest_dice_loss.pth'))
            model.module.load_state_dict(checkpoint['model_state_dict'])
            optimizer.load_state_dict(checkpoint['optimizer_state_dict'])
            initepoch = checkpoint['epoch']
            print("====>loaded checkpoint (epoch{})".format(checkpoint['epoch']))
        else:
            print("====>no checkpoint found.")
            initepoch = 0

3、保存checkpoint包含的参数

checkpoint = {"model_state_dict": model.module.state_dict(),
                          "optimizer_state_dict": optimizer.state_dict(),
                          "epoch": epoch}
checkpoint_path = os.path.join(args.save_model_path, 'latest_dice_loss.pth') 

torch.save(checkpoint, checkpoint_path)   

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐