为了账号安全,请及时绑定邮箱和手机立即绑定

python模块 | pickle:python对象序列化

标签:
Python

一 什么是pickle

  • pickle实现了用于python对象结构的序列化和去序列化的协议;

  • 会把python转成二进制的格式存储;

简单来说,就是将我们想要保存的python对象用二进制编码存储下来。这样对于存储数据量很大的信息是非常有益的。

对于我们来说,了解一下怎么样就可以。

二 pickle的用法

这里只记录和整理一些比较常见的用法,具体的可以戳底部的参考资料学习官网给出的文档。

1 模块导入

import pickleimport numpy as np

2 存储与加载

  • save:pickle.dump(a, open("fiile.pkl", "wb"))

  • load: pickle.load(open("file.pkl", "rb"))

3 用法示例

import pickleimport numpy as np# Your dataa = np.array([[1, 2, 3], [4, 5, 6]])# Save it to dickpickle.dump(a, open("foo.pkl", "wb"))# And load backb = pickle.load(open("foo.pkl", "rb"))# Check if a == bprint(a)
print(b)
print(a == b)# And pickle can save anything you want# for example, a dictpickle.dump({"key": "value"}, open("dict.pkl", "wb"))# more thingsfeature = np.ones(2, 3)
label = np.ones(2)
data = {    "feature": feature,    "data": label
}
pickle.dump(data, open("more.pkl", "wb"))
data_load_back = pickle.load(open("more.pkl", "rb"))
print(data)
print(data_load_back)

4 一些发现

熟悉pytorch的小伙伴不知道有没有发现pytorch保存的model都是以.pkl结尾的,其实就是用pickle模块在存储的。

如下图即为torch.save中的函数命名,有兴趣的可以自己看一看源码嘻嘻ヾ(°∇°)ノ゙

700

参考资料



作者:与阳光共进早餐
链接:https://www.jianshu.com/p/0427566eac24


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消