Pytorch_Part7_模型使用

本文介绍了PyTorch中模型的保存与加载,包括序列化、断点续训,详细讲解了模型微调的Transfer Learning和Resnet18迁移学习的应用。此外,还探讨了GPU的使用,包括数据和模型的to操作、GPU设备管理以及多GPU运算的并行机制。
摘要由CSDN通过智能技术生成

共同贡献PyTorch常见错误与坑汇总文档《PyTorch常见报错/坑汇总》

一、模型保存与加载

1. 序列化与反序列化

net = LeNet2(classes=2019)

# 法1: 保存整个Module,不仅保存参数,也保存结构
torch.save(net, path)

net_load = torch.load(path_model)	# 网络名称、结构、模型参数、优化器参数均保留

# 法2: 保存模型参数(推荐,占用资源少)
state_dict = net.state_dict()
torch.save(state_dict , path)

net_new = LeNet2(classes=2019)
net_new.load_state_dict(state_dict_load)

2. 断点续训练

保存:

checkpoint = {
   
"model_state_dict": net.state_dict(),
"optimizer_state_dict": optimizer.state_dict(),
"epoch": epoch
}
path_checkpoint = "./checkpoint_{}_epoch.pkl".format(epoch)
torch.save(checkpoint, path_checkpoint)

恢复:

# ============================ step 2/5 模型 ============================
net = LeNet(classes=2)
net.initialize_weights()

# ============================ step 3/5 损失函数 ============================
criterion = nn.CrossEntropyLoss()                                                   # 选择损失函数

# ============================ step 4/5 优化器 ============================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值