文章目录

  • 前言
  • 一、保存整个模型
  • 二、只保存参数
  • 模型不同后缀名的区别
  • 总结

前言

模型的本质是一堆用某种结构存储起来的参数
用数据对模型进行训练后得到了比较理想的模型,就需要将其存储起来,然后在需要用到的时候加载一下直接使用。
保存的时候有两种方式:
一种方式是直接将整个模型保存下来,之后直接加载整个模型,但这样会比较耗内存,但内存吗嘛,不是什么大问题,我遇到的模型一般不超过100M。这都是很大的了;
另一种是只保存模型的参数,之后用到的时候再创建一个同样结构的新模型,然后把所保存的参数导入新模型。(也可以,也挺方便的)


一、保存整个模型

#保存
torch.save(the_model, PATH)
#读取
model = torch.load(PATH)

读取时不需要先定义model,比如:model=resnet50()。直接加载赋值就行。


二、只保存参数

保存参数:

torch.save(model,path)

读取模型:

# 测试所保存的模型
m_state_dict = torch.load('rnn.pt')
new_m = LSTM(input_size=1, hidden_size=10, num_layers=2).to(device)
new_m.load_state_dict(m_state_dict)

1、加载参数
2、实例化模型
3、将参数赋予模型
也可以在定义模型后直接

new_m.load_state_dict(torch.load('rnn.pt'))

模型不同后缀名的区别

经常会看到后缀名为.pt, .pth, .pkl的pytorch模型文件,其实它们并不是在格式上有区别,只是后缀不同而已(仅此而已)。
在pytorch官方的文档/代码里,有用.pt的,也有用.pth的。一般惯例是使用.pth,但是官方文档里貌似.pt更多,而且官方也不是很在意固定用一种。


总结

持续更新

pytorch保存模型的两种方法相关推荐

  1. 加载dict_PyTorch 7.保存和加载pytorch模型的两种方法

    众所周知,python的对象都可以通过torch.save和torch.load函数进行保存和加载(不知道?那你现在知道了(*^_^*)),比如: x1 = {"d":" ...

  2. 在Web项目中保存会话的两种方法:Cookie和Session

    Web浏览器是与Web服务器之间的会话是一个不保持的会话,浏览器发起请求,建立会话,获得结果后,会话就不在了.然而,在涉及到用户登录Web项目中,开发人员必须有一种方法,区分用户登录前后的状态,以便对 ...

  3. 【PyTorch】保存和载入模型的两种方法

    import torch import argparseparser = argparse.ArgumentParser("-") parser.add_argument(&quo ...

  4. TensorFlow 模型保存/载入的两种方法

    TensorFlow 模型保存/载入 我们在上线使用一个算法模型的时候,首先必须将已经训练好的模型保存下来.tensorflow保存模型的方式与sklearn不太一样,sklearn很直接,一个skl ...

  5. Pytorch构建模型的3种方法

    这个地方一直是我思考的地方!因为学的代码太多了,构建的模型各有不同,这里记录一下! 可以使用以下3种方式构建模型: 1,继承nn.Module基类构建自定义模型. 2,使用nn.Sequential按 ...

  6. nn.Dataparallel pytorch 平行计算的两种方法

    1. nn.Dataparallel 多GPU加速训练 原理: 模型分别复制到每个卡中,然后把输入切片,分别放入每个卡中计算,然后再用第一块卡进行汇总求loss,反向传播更新参数. 第一块卡占用的内存 ...

  7. 记账一段时间后,导出保存账目的两种方法

    怎么记账,收入.支出的账目可以在电脑上记录吗?记录一段时间后,怎么保存账目呢?今天小编给大家分享一个新的记账技巧, 下面一起来试试. 需要哪些工具? 一台电脑 怎么快速记账? 运行[晨曦记账本],主界 ...

  8. 新手入门深度学习 | 4-4:保存模型的N种方法

  9. pytorch保存模型pth_Day159:模型的保存与加载

    网络结构和参数可以分开的保存和加载,因此,pytorch保存模型有两种方法: 保存 整个模型 (结构+参数) 只保存模型参数(官方推荐) # 保存整个网络torch.save(model, check ...

最新文章

  1. jmeter操作数据库
  2. 架构师速成-架构目标之可用性
  3. How is CRM status filtering logic done
  4. 科普漫画 | 沙子如何变成芯片?
  5. 点击回车事件(登录)
  6. Linux的实际操作:Linux磁盘分区 、挂载
  7. mysql outfile raw_解决 Mysql outfile 的报错问题!
  8. html页面怎么引用通用的头部,html 如何引入一个公共的头部和底部
  9. jQuery ajax error函数(交互错误信息的获取)
  10. 《统计会犯错——如何避免数据分析中的统计陷阱》—第1章构建置信区间
  11. Atitit 存储方法大总结 目录 1. 存储方式分类 2 1.1. 按照数据分类为 结构化 半结构化 非结构化 2 1.2. 按照内外部可分类 内部存储和外部存储持久化 2 1.3. 按照本地远
  12. DOS命令tree的用法
  13. WIN7开机欢迎界面后黑屏
  14. 浅谈Java中的单例模式及四种懒汉模式
  15. 擦亮双眼,愚人节彩蛋回顾
  16. 用java实践了下Bingo游戏的玩法
  17. springboot2.2.6文件上传、下载及文件超出大小限制的处理
  18. Windows 8实用窍门系列:6.Windows 8中的Popup使用方式
  19. 腾讯自媒体平台:腾讯QQ看点上线创作中心
  20. 解决Eclipse打开某个workspace报错:The project description file (.project) for (项目名)

热门文章

  1. 常用数学公式推导及概念
  2. Spring Boot整合Redis以及Redis的原理
  3. 节日营销方案:你值得关注的6个策略! 1
  4. 考PMP证书是智商税吗?
  5. 上一条 下一条 新闻
  6. 8.6 竞赛题目选讲
  7. 【台州世通兰陵王系列】选择台州高防服务器需要考虑什么?
  8. python中divmod_python 中的divmod数字处理函数浅析
  9. 新零售撞上消费降级,该怎么撬开消费者的钱包?
  10. Stirling公式(pku1423)