浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式 pth中的路径加载使用

本文介绍了Python中xxx.pth文件的作用,将其放在特定位置,可让Python加载模块时读取指定路径。还提到导入项目里的Python文件找不到时,可将项目路径添加到PYTHONPATH下,介绍了暂时和永久添加的方法,同时说明了用.pth文件注册新类库更方便,还能实现egg包卸载。

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

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

Python客栈送红包、纸质书


有时,在用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的区别及模型保存方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

https://www.jb51.net/article/187269.htm

在Detectron2中,关于识别PyTorch .pth格式模型 .pkl 文件的用法如下: ### .pth格式模型 .pth文件主要用于保存 PyTorch 模型的状态字典,即模型的权重偏置,Detectron2 可以很好地支持该格式文件的使用。在使用时,通常可以通过以下代码加载 .pth 格式的模型: ```python import detectron2 from detectron2.config import get_cfg from detectron2.modeling import build_model import torch # 创建配置 cfg = get_cfg() # 配置文件路径,根据实际情况修改 cfg.merge_from_file("path/to/config.yaml") # 构建模型 model = build_model(cfg) # 加载 .pth 格式的模型权重 model_state_dict = torch.load("path/to/your_model.pth") model.load_state_dict(model_state_dict) ``` 在上述代码中,首先创建并配置 Detectron2 的配置对象,然后根据配置构建模型,最后使用 `torch.load` 函数加载 .pth 文件中的模型状态字典,并将其应用到模型上。 ### .pkl文件 .pkl 文件可以保存任何 Python 对象,包括整个模型实例,但不如 .pth.pt 文件那样专门针对 PyTorch 模型。在 Detectron2 中使用 .pkl 文件时,可以通过以下代码加载: ```python import pickle import detectron2 from detectron2.config import get_cfg from detectron2.modeling import build_model # 创建配置 cfg = get_cfg() # 配置文件路径,根据实际情况修改 cfg.merge_from_file("path/to/config.yaml") # 构建模型 model = build_model(cfg) # 加载 .pkl 文件 with open("path/to/your_model.pkl", 'rb') as f: model_state = pickle.load(f) # 如果 .pkl 文件中直接保存的是模型状态字典 model.load_state_dict(model_state) ``` 在上述代码中,使用 Python 的 `pickle` 模块来加载 .pkl 文件,然后根据文件中保存的内容将模型状态应用到构建好的模型上。 需要注意的是,在保存加载模型时,要确保模型的定义加载环境一致,例如使用相同的 PyTorch 版本库依赖 [^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值