浅谈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实现博客文章爬虫示例
Feb 26 Python
使用Django的模版来配合字符串翻译工作
Jul 27 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
python实现神经网络感知器算法
Dec 20 Python
python清除字符串前后空格函数的方法
Oct 21 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
Django ORM 查询表中某列字段值的方法
Apr 30 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
Python字典实现伪切片功能
Oct 28 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
php字符串操作常见问题小结
2016/10/11 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
phpQuery采集网页实现代码实例
2020/04/02 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
jquery 问答知识整理
2010/02/11 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
vuejs通过filterBy、orderBy实现搜索筛选、降序排序数据
2020/10/26 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
微信小程序实现时间预约功能
2018/11/27 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
[01:36]极致酷炫!TI9典藏宝瓶+撼地者至宝展示
2019/06/11 DOTA
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
python验证码识别的实例详解
2016/09/09 Python
解读python如何实现决策树算法
2018/10/11 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
python Kmeans算法原理深入解析
2019/08/23 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
Wiggle澳大利亚:自行车、跑步、游泳商店
2020/11/07 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
.NET初级开发工程师面试题
2014/04/18 面试题
同学聚会老师邀请函
2014/01/28 职场文书
出生公证委托书
2014/04/03 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2015年体育教学工作总结
2015/05/20 职场文书