Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytorch 中pkl和pth的区别?

pytorch 中pkl和pth的区别?

作者头像
狼啸风云
修改于 2022-09-02 05:18:54
修改于 2022-09-02 05:18:54
2.9K00
代码可运行
举报
运行总次数:0
代码可运行

torch.save()实现对网络结构和模型参数的保存。有两种保存方式:一是保存整个神经网络的的结构信息和模型参数信息,save的对象是网络模型;二是只保存神经网络的训练模型参数,save的对象是net.state_dict()。假设我有一个训练好的模型名叫net1,则:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.save(net1,7-net.pth’) # 保存整个神经网络的结构和模型参数

torch.save(net1,7-net.pkl’) # 同上

torch.save(net1.state_dict(),7-net_params.pth’) # 只保存神经网络的模型参数

torch.save(net1.state_dict(),7-net_params.pkl’) # 同上

如果你是使用torch.save方法来进行模型参数的保存,那保存文件的后缀其实没有任何影响,结果都是一样的,很多.pkl的文件也是用torch.save保存下来的,和.pth文件一模一样的。。。

------------------------------------------------------------

不过,如果应用场景不是在这里,这两种格式的文件还是有区别的,.pkl文件是python里面保存文件的一种格式,如果直接打开会显示一堆序列化的东西,其实就是以二进制形式存储的,如果去read这些文件,则需要用'rb'而不是'r'模式。

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

但其实不管pkl文件还是pth文件,都是以二进制形式存储的,没有本质上的区别,你用pickle这个库去加载pkl文件或pth文件,效果都是一样的。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/04/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
加入讨论
的问答专区 >
KOL擅长5个领域
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
    本文部分代码块支持一键运行,欢迎体验
    本文部分代码块支持一键运行,欢迎体验