浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式


Posted in Python onMay 25, 2020

我们经常会看到后缀名为.pt, .pth, .pkl的pytorch模型文件,这几种模型文件在格式上有什么区别吗?

其实它们并不是在格式上有区别,只是后缀不同而已(仅此而已),在用torch.save()函数保存模型文件时,各人有不同的喜好,有些人喜欢用.pt后缀,有些人喜欢用.pth或.pkl.用相同的torch.save()语句保存出来的模型文件没有什么不同。

在pytorch官方的文档/代码里,有用.pt的,也有用.pth的。一般惯例是使用.pth,但是官方文档里貌似.pt更多,而且官方也不是很在意固定用一种。

模型保存与调用方式一:

保存:

torch.save(model.state_dict(), mymodel.pth)#只保存模型权重参数,不保存模型结构

调用:

model = My_model(*args, **kwargs) #这里需要重新模型结构,My_model
model.load_state_dict(torch.load(mymodel.pth))#这里根据模型结构,调用存储的模型参数
model.eval()

模型保存与调用方式一:

保存:

torch.save(model, mymodel.pth)#保存整个model的状态

调用:

model=torch.load(mymodel.pth)#这里已经不需要重构模型结构了,直接load就可以
model.eval()

补充知识:关于python 导入包 .pth文件

Python在遍历已知的库文件目录过程中,如果见到一个.pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件说指明的库也就可以被 Python 运行环境找到了。

python中有一个.pth文件,该文件的用法是:

首先xxx.pth文件里面会书写一些路径,一行一个。

将xxx.pth文件放在特定位置,则可以让python在加载模块时,读取xxx.pth中指定的路径。

*******************************************

有时,在用import导入项目文件夹里自己写的python文件时,常常说找不到该文件,这时可以将项目路径添加到PYTHONPATH下。

暂时添加:

import sys
sys.path.append(项目路径)

这种方法只会存在内存里,一旦退出python就没有了

一劳永逸:

在 XXX/pythonXXX/site-packages/ (python 包安装路径) 下新建后缀为 .pth的文件,在其中加入你的项目路径,比如

K:\Desktop\face_detect\DFace-win64-master\src
K:\Desktop\face_detect\DFace-win64-master\src\core

*******************************************

有时候我们正在修改或调试的程序会是一个库,为修改方便,我们可能不大希望把它放到 site-packages 下面,而是更愿意把它保留在原始的工程目录中,以方便 IDE 和版本控制工具进行管理。那么怎么能让 Python 运行环境找到这个库呢?

原理上, Python 运行环境查找库文件时本质是对 sys.path 列表的遍历,如果我们想给运行环境注册新的类库进来,

要么得用代码给 sys.path 列表增加新路径;

要么得调整 PYTHONPATH 环境变量;

要么就得把库文件复制到已经在 sys.path 设置中的路径中去(比如 site-packages 目录);

这些方法都不够方便。最简单的办法是用 .pth 文件来实现。Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件说指明的库也就可以被 Python 运行环境找到了。

其实,easy_install 所依赖的 egg 包安装就是靠 site-packages 目录下的 .pth 文件添加对 egg 包的引用实现的。所以修改对应的 .pth 文件内容,就可以实现对 egg 包的卸载。

以上这篇浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
Python解析nginx日志文件
May 11 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python模拟三级菜单效果
Sep 11 Python
Python下使用Scrapy爬取网页内容的实例
May 21 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
python一键去抖音视频水印工具
Sep 14 Python
Python如何调用外部系统命令
Aug 07 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python操作yaml说明
Apr 08 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 #Python
tensorflow pb to tflite 精度下降详解
May 25 #Python
Python HTMLTestRunner测试报告view按钮失效解决方案
May 25 #Python
python用opencv完成图像分割并进行目标物的提取
May 25 #Python
Pytorch转tflite方式
May 25 #Python
Python HTMLTestRunner库安装过程解析
May 25 #Python
Anaconda+vscode+pytorch环境搭建过程详解
May 25 #Python
You might like
对象失去焦点时自己动提交数据的实现代码
2012/11/06 PHP
解析func_num_args与func_get_args函数的使用
2013/06/24 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
在IE下:float属性会影响offsetTop的取值
2006/12/22 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
jquery.boxy弹出框(后隔N秒后自动隐藏/自动跳转)
2013/01/15 Javascript
关于img的href和src取变量及赋值的方法
2014/04/28 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
全面解析bootstrap格子布局
2016/05/22 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
jQuery使用JSONP实现跨域获取数据的三种方法详解
2017/05/04 jQuery
React Native验证码倒计时工具类分享
2017/10/24 Javascript
Vue 路由 过渡动效 数据获取方法
2018/07/31 Javascript
深入浅析angular和vue还有jquery的区别
2018/08/13 jQuery
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
2020/08/20 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
Python在图片中添加文字的两种方法
2017/04/29 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
《美丽的黄昏》教学反思
2014/02/28 职场文书
端午节活动策划方案
2014/03/09 职场文书
公司领导班子对照材料
2014/08/18 职场文书
党员三严三实心得体会
2014/10/13 职场文书
2019销售早会主持词
2019/06/27 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
python基础之文件处理知识总结
2021/05/23 Python
详解Python如何批量采集京东商品数据流程
2022/01/22 Python