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程序中进行文件读取和写入操作的教程
Apr 28 Python
Python数据类型详解(四)字典:dict
May 12 Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 Python
修复 Django migration 时遇到的问题解决
Jun 14 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
Python3远程监控程序的实现方法
Jul 15 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
python实现代码统计器
Sep 19 Python
python 实现生成均匀分布的点
Dec 05 Python
Django DRF路由与扩展功能的实现
Jun 03 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
利用Python实现自动扫雷小脚本
Dec 17 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面向对象编程快速入门
2006/12/14 PHP
php制作动态随机验证码
2015/02/12 PHP
PHP创建自己的Composer包方法
2018/04/09 PHP
Javascript操纵Cookie实现购物车程序
2006/11/23 Javascript
页面使用密码保护代码
2013/04/10 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
Jquery中ajax方法data参数的用法小结
2014/02/12 Javascript
给html超链接设置事件不使用href来完成跳
2014/04/20 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
基于Layer+jQuery的自定义弹框
2020/05/26 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
js经验分享 JavaScript反调试技巧
2018/03/10 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
JavaScript定时器设置、使用与倒计时案例详解
2019/07/08 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
Element图表初始大小及窗口自适应实现
2020/07/10 Javascript
js实现微信聊天效果
2020/08/09 Javascript
Python标准库sched模块使用指南
2017/07/06 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
作为网站管理者应当如何防范XSS
2014/08/16 面试题
企业给企业的表扬信
2014/01/13 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
南京大屠杀观后感
2015/06/02 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
导游词之张家界
2019/10/31 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python