Pytorch之保存读取模型实例


Posted in Python onDecember 30, 2019

pytorch保存数据

pytorch保存数据的格式为.t7文件或者.pth文件,t7文件是沿用torch7中读取模型权重的方式。而pth文件是python中存储文件的常用格式。而在keras中则是使用.h5文件。

# 保存模型示例代码
print('===> Saving models...')
state = {
  'state': model.state_dict(),
  'epoch': epoch          # 将epoch一并保存
}
if not os.path.isdir('checkpoint'):
  os.mkdir('checkpoint')
torch.save(state, './checkpoint/autoencoder.t7')

保存用到torch.save函数,注意该函数第一个参数可以是单个值也可以是字典,字典可以存更多你要保存的参数(不仅仅是权重数据)。

pytorch读取数据

pytorch读取数据使用的方法和我们平时使用预训练参数所用的方法是一样的,都是使用load_state_dict这个函数。

下方的代码和上方的保存代码可以搭配使用。

print('===> Try resume from checkpoint')
if os.path.isdir('checkpoint'):
  try:
    checkpoint = torch.load('./checkpoint/autoencoder.t7')
    model.load_state_dict(checkpoint['state'])    # 从字典中依次读取
    start_epoch = checkpoint['epoch']
    print('===> Load last checkpoint data')
  except FileNotFoundError:
    print('Can\'t found autoencoder.t7')
else:
  start_epoch = 0
  print('===> Start from scratch')

以上是pytorch读取的方法汇总,但是要注意,在使用官方的预处理模型进行读取时,一般使用的格式是pth,使用官方的模型读取命令会检查你模型的格式是否正确,如果不是使用官方提供模型通过下面的函数强行读取模型(将其他模型例如caffe模型转过来的模型放到指定目录下)会发生错误。

def vgg19(pretrained=False, **kwargs):
  """VGG 19-layer model (configuration "E")
 
  Args:
    pretrained (bool): If True, returns a model pre-trained on ImageNet
  """
  model = VGG(make_layers(cfg['E']), **kwargs)
  if pretrained:
    model.load_state_dict(model_zoo.load_url(model_urls['vgg19']))
  return model

假如我们有从caffe模型转过来的pytorch模型([0-255,BGR]),我们可以使用:

model_dir = '自己的模型地址'
model = VGG()
model.load_state_dict(torch.load(model_dir + 'vgg_conv.pth'))

也就是pytorch的读取函数进行读取即可。

以上这篇Pytorch之保存读取模型实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python SQLite3数据库操作类分享
Jun 10 Python
Python作用域用法实例详解
Mar 15 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
python django生成迁移文件的实例
Aug 31 Python
Python如何用filter函数筛选数据
Mar 05 Python
通过自学python能找到工作吗
Jun 21 Python
Python ConfigParser模块的使用示例
Oct 12 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
python 将Excel转Word的示例
Mar 02 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 #Python
Python中如何将一个类方法变为多个方法
Dec 30 #Python
pytorch 实现打印模型的参数值
Dec 30 #Python
Python如何基于smtplib发不同格式的邮件
Dec 30 #Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 #Python
Python类反射机制使用实例解析
Dec 30 #Python
Python读取YAML文件过程详解
Dec 30 #Python
You might like
php调用google接口生成二维码示例
2014/04/28 PHP
PHP命令行脚本接收传入参数的三种方式
2014/08/20 PHP
php集成动态口令认证
2016/07/21 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
Javascript MD4
2006/12/20 Javascript
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
利用Console来Debug的10个高级技巧汇总
2018/03/26 Javascript
js实现二级菜单点击显示当前内容效果
2018/04/28 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
js中对象和面向对象与Json介绍
2019/01/21 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
Python里隐藏的“禅”
2014/06/16 Python
python os用法总结
2018/06/08 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
简单的Python调度器Schedule详解
2019/08/30 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
CSS3截取字符串实例代码【推荐】
2018/06/07 HTML / CSS
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
介绍一下UNIX启动过程
2013/11/14 面试题
阳光体育活动方案
2014/02/16 职场文书
支部组织生活会方案
2014/06/10 职场文书
教师党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
Python内置数据结构列表与元组示例详解
2021/08/04 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript