Pytorch保存模型和加载

保存模型

第一种:保存整个模型,按道理应该不用自己再导入网络框架,但我在实际应用过程中如果没有导入整个网络框架是会报错的。

torch.save(net,dir)   
 #其中net是你代码中自定义的网络入口(下同)
 #dir是你将要保存的路径加自定义名字(下同)
 #eg:"D:/pytroch/mode.pkl" 

第二种:保存模型参数,网络框架还需自己构建。

torch.save(net.state_dict(),dir)

加载模型

第一:

net = torch.load(dir)

注意:它并不是独立于原先代码就可以运行,需要获取原来网络的框架,并且数据格式必须一致。通过一下例子进一步讲解。

from ... import  Net  
#在另一段代码运行的时候需要加载原来训练的网络框架,不然会报错
image.unsqueeze(0)
#训练的时候一般是(batch_sieze,x,y,z),但推理的时候只有(x,y,z)
net.to(device)
image.to(device)
#你训练是用CPU还是GPU,对应声明即可

第二种:
一般来说大家都是推荐这一种,pytorch官方给出的很多预训练模型也都是用这种方法加载的。

net = Net()   #我们必须实例化原来函数的网络架构
temp = torch.load(dir)
net.load_state_dict(temp)

这样net就是一个即有网络框架又有模型参数的网络了。
值得一提的是,无论哪一种,其实都是可以进行网络裁剪的。

nn.Sequential(*list(net.children())[n:m])
#两种都适用,更具体可以看我Pytorch迁移学习那一章。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

__TAT__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值