pytorch checkpoint_pytorch知识点

本文介绍了PyTorch中模型参数的保存与恢复,包括如何使用torch.save()和torch.load(),以及如何在训练和评估模式下使用Batch Normalization和Dropout。此外,还讲解了torch.squeeze()和torch.unsqueeze()的用法,argparse命令行解析,Python函数的可选参数,logging模块的日志记录,tqdm进度条的使用,以及Python的列表推导式和if for在同一行的使用方法。
摘要由CSDN通过智能技术生成

1、pytorch保存模型等相关参数,利用torch.save(),以及读取保存之后的文件

https://www.cnblogs.com/qinduanyinghua/p/9311410.html
本文分为两部分,第一部分讲如何保存模型参数,优化器参数等等,第二部分则讲如何读取。

假设网络为model = Net(), optimizer = optim.Adam(model.parameters(), lr=args.lr), 假设在某个epoch,我们要保存模型参数,优化器参数以及epoch

一、

1. 先建立一个字典,保存三个参数:

state = {‘net':model.state_dict(), 'optimizer':optimizer.state_dict(), 'epoch':epoch}

2.调用torch.save():

torch.save(state, dir)

注:已存在会覆盖掉注:os.mkdir(dir_checkpoint) 创建已存在的目录时,会报错FileExistsError。但是OSError,IOError均可以检测到https://www.cnblogs.com/beile/p/10789333.html列举了文件的异常类型,其中FileExistsError属于OSError

其中dir表示保存文件的绝对路径+保存文件名,如'/home/qinying/Desktop/modelpara.pth'

二、

当你想恢复某一阶段的训练(或者进行测试)时,那么就可以读取之前保存的网络模型参数等。

checkpoint = torch.load(dir)

model.load_state_dict(checkpoint['net'])

optimizer.load_state_dict(checkpoint['optimizer'])

start_epoch = checkpoint['epoch'] + 1

2、model.train 和 model.eval

https://blog.csdn.net/weixin_42018112/article/details/91403816

这两个方法是针对在网络train和eval时采用不同方式的情况,比如Batch Normalization和Dropout。

Batch Normalization

BN的作用主要是对网络中间的每层进行归一化处理,并且使用变换重构(Batch Normalization Transform)保证每层所提取的特征分布不会被破坏。
训练时是针对每个mini-batch的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值