浅谈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实现判断数组是否包含指定元素的方法
Jul 15 Python
Python算法应用实战之栈详解
Feb 04 Python
Python算法之图的遍历
Nov 16 Python
Pycharm远程调试openstack的方法
Nov 21 Python
python实现校园网自动登录的示例讲解
Apr 22 Python
python3中os.path模块下常用的用法总结【推荐】
Sep 16 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
解读python如何实现决策树算法
Oct 11 Python
用什么库写 Python 命令行程序(示例代码详解)
Feb 20 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 Python
Python如何把十进制数转换成ip地址
May 25 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
Jun 18 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
利用PHPStorm如何开发Laravel应用详解
2017/08/30 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
2020/03/29 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
可简单避免的三个JS发布错误的详细介绍
2013/08/02 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
使用javascript实现监控视频播放并打印日志
2015/01/05 Javascript
详解JavaScript的表达式与运算符
2015/11/30 Javascript
js改变css样式的三种方法推荐
2016/06/28 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
详解Vue组件之作用域插槽
2018/11/22 Javascript
jquery 验证用户名是否重复代码实例
2019/05/14 jQuery
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
jQuery实时统计输入框字数及限制
2020/06/24 jQuery
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python如何实现int函数的方法示例
2018/02/19 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
校本教研工作制度
2014/01/22 职场文书
学校班班通实施方案
2014/06/11 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python