Pytorch之保存读取模型实例

 更新时间:2019年12月30日 09:43:16   作者:啧啧啧biubiu  
今天小编就为大家分享一篇Pytorch之保存读取模型实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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人工智能tensorflow函数tf.nn.dropout使用方法

    python人工智能tensorflow函数tf.nn.dropout使用方法

    这篇文章主要为大家介绍了python人工智能tensorflow函数tf.nn.dropout使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Linux下使用python调用top命令获得CPU利用率

    Linux下使用python调用top命令获得CPU利用率

    这篇文章主要介绍了Linux下使用python调用top命令获得CPU利用率,本文直接给出实现代码,需要的朋友可以参考下
    2015-03-03
  • 分享一些非常实用的Python小技巧

    分享一些非常实用的Python小技巧

    这篇文章主要分享一些非常实用的Python小技巧,助力你在Python学习的道路上一帆风顺,接下来就一起来学习一下吧
    2023-03-03
  • Python内建类型float源码学习

    Python内建类型float源码学习

    这篇文章主要为大家介绍了Python内建类型float源码学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python实现将内容分行输出

    python实现将内容分行输出

    本文给大家分享的是使用python实现将一行里的内容进行分行输出,一共给出了四种方法,小伙伴们可以参考下
    2015-11-11
  • python利用opencv调用摄像头实现目标检测

    python利用opencv调用摄像头实现目标检测

    这篇文章主要为大家介绍了python利用opencv调用摄像头实现目标检测的示例代码,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • python编程开发时间序列calendar模块示例详解

    python编程开发时间序列calendar模块示例详解

    这篇文章主要为大家介绍了python编程开发时间序列calendar模块示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步早日升职加薪
    2021-11-11
  • python运行脚本文件的三种方法实例

    python运行脚本文件的三种方法实例

    在计算中,脚本一词用于指代包含订单逻辑序列的文件或批处理文件,下面这篇文章主要给大家介绍了关于python运行脚本文件的三种方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python使用正则表达式过滤或替换HTML标签的方法详解

    Python使用正则表达式过滤或替换HTML标签的方法详解

    这篇文章主要介绍了Python使用正则表达式过滤或替换HTML标签的方法,简单介绍了Python正则相关语法并结合具体实例形式分析了Python基于正则表达式的HTML标签过滤与替换相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • Python交互式图形编程的实现

    Python交互式图形编程的实现

    这篇文章主要介绍了Python交互式图形编程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07

最新评论