Pytorch保存模型用于测试和用于继续训练的区别详解


Posted in Python onJanuary 10, 2020

保存模型

保存模型仅仅是为了测试的时候,只需要

torch.save(model.state_dict, path)

path 为保存的路径

但是有时候模型及数据太多,难以一次性训练完的时候,而且用的还是 Adam优化器的时候, 一定要保存好训练的优化器参数以及epoch

state = { 'model': model.state_dict(), 'optimizer':optimizer.state_dict(), 'epoch': epoch }  
torch.save(state, path)

因为这里

def adjust_learning_rate(optimizer, epoch):
  lr_t = lr
  lr_t = lr_t * (0.3 ** (epoch // 2))
  for param_group in optimizer.param_groups:
    param_group['lr'] = lr_t

学习率是根据epoch变化的, 如果不保存epoch的话,基本上每次都从epoch为0开始训练,这样学习率就相当于不变了!!

恢复模型

恢复模型只用于测试的时候,

model.load_state_dict(torch.load(path))

path为之前存储模型时的路径

但是如果是用于继续训练的话,

checkpoint = torch.load(path)
model.load_state_dict(checkpoint['model'])
optimizer.load_state_dict(checkpoint['optimizer'])
start_epoch = checkpoint['epoch']+1

依次恢复出模型 优化器参数以及epoch

以上这篇Pytorch保存模型用于测试和用于继续训练的区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
教你安装python Django(图文)
Nov 04 Python
使用Python3制作TCP端口扫描器
Apr 17 Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 Python
python导出chrome书签到markdown文件的实例代码
Dec 27 Python
python实现求解列表中元素的排列和组合问题
Mar 15 Python
pandas修改DataFrame列名的方法
Apr 08 Python
pycharm 批量修改变量名称的方法
Aug 01 Python
浅谈tensorflow之内存暴涨问题
Feb 05 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
Feb 11 Python
python实现从ftp服务器下载文件
Mar 03 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
PyCharm Community安装与配置的详细教程
Nov 24 Python
使用pytorch完成kaggle猫狗图像识别方式
Jan 10 #Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 #Python
Ubuntu16.04安装python3.6.5步骤详解
Jan 10 #Python
Pytorch 保存模型生成图片方式
Jan 10 #Python
在pytorch中对非叶节点的变量计算梯度实例
Jan 10 #Python
python如何获取apk的packagename和activity
Jan 10 #Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 #Python
You might like
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
composer.lock文件的作用
2016/02/03 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
JavaScript OOP面向对象介绍
2010/12/02 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
Egret引擎开发指南之编译项目
2014/09/03 Javascript
javascript+canvas实现刮刮卡抽奖效果
2015/07/29 Javascript
js限制文本框的输入内容代码分享(3类)
2015/08/20 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
js表单验证实例讲解
2016/03/31 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
浅谈JS原生Ajax,GET和POST
2016/06/08 Javascript
javascript基本数据类型及类型检测常用方法小结
2016/12/14 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
vue中监听返回键问题
2019/08/28 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
[02:31]2018年度DOTA2最具人气选手-完美盛典
2018/12/16 DOTA
windows环境下tensorflow安装过程详解
2018/03/30 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
python五子棋游戏的设计与实现
2019/06/18 Python
在python里面运用多继承方法详解
2019/07/01 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
先进德育工作者事迹材料
2014/01/24 职场文书
会务接待方案
2014/02/27 职场文书
制药工程专业职业生涯规划范文
2014/03/10 职场文书
最感人的道歉情书
2015/05/12 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB