浅谈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编写一个简单的FUSE文件系统的教程
Apr 02 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
使用TensorFlow实现SVM
Sep 06 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
Python3实现的判断回文链表算法示例
Mar 08 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
wxPython:python首选的GUI库实例分享
Oct 05 Python
解决Python3下map函数的显示问题
Dec 04 Python
Python中文分词库jieba,pkusegwg性能准确度比较
Feb 11 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
python如何写try语句
Jul 14 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
php仿QQ验证码的实例分析
2013/07/01 PHP
PHP按一定比例压缩图片的方法
2018/10/12 PHP
PHP校验15位和18位身份证号的类封装
2018/11/07 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
js中的onchange和onpropertychange (onchange无效的解决方法)
2014/03/08 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
js实现按钮颜色渐变动画效果
2015/08/20 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
使用jQuery Mobile框架开发移动端Web App的入门教程
2016/05/17 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
bootstrap+jQuery实现的动态进度条功能示例
2017/05/25 jQuery
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
node.js 用socket实现聊天的示例代码
2017/10/17 Javascript
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
JavaScript this在函数中的指向及实例详解
2019/10/14 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
Python实现扫描指定目录下的子目录及文件的方法
2014/07/16 Python
python 简单备份文件脚本v1.0的实例
2017/11/06 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
如何用用Python将地址标记在地图上
2021/02/07 Python
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
Ralph Lauren法国官网:美国高品味时装品牌
2017/12/08 全球购物
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
会议邀请函
2015/01/30 职场文书
会议主持人开场白台词
2015/05/28 职场文书
祝福语集锦:送给毕业同学祝福语
2019/11/21 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
DBCA命令行搭建Oracle ADG的流程
2021/06/11 Oracle
详解Python flask的前后端交互
2022/03/31 Python