可以保存程序内部变量的python库——pickle

Pickle是Python内置的数据序列化库,用于将数据对象保存到文件,便于后续快速加载。它支持多种数据类型,如列表、字典、numpy数组和torch的tensor。保存时使用`pickle.dump()`,读取时用`pickle.load()`。通过pickle,你可以避免重复计算和简化复杂程序的数据操作流程。
摘要由CSDN通过智能技术生成

Pickle的使用场景

当我们需要使用变量进行数据分析时,反复运行代码并在复杂程序内部进行数据操作是很麻烦也很耗时的。

使用Pickle把程序内部的中间变量保存下来,另外写一个轻量的脚本来操作就可以避免这个麻烦。

 Pickle Python | How to use Pickle Python

如何使用

pickle可以保存任意中间变量,如列表、字典,包括numpy的ndarray,torch中的tensor等

直接在代码中

import pickle

保存

#例如,我们保存一个字典
a_dict = {'da': 111, 2: [23,1,4], '23': {1:2,'d':'sad'}}

file = open('pickle_example.pickle', 'wb')
pickle.dump(a_dict, file)
file.close()

注意pickle是将数据存储保存成2进制格式,故写、读操作均要加上b标识符,使用'wb' 'rb'来读写文件。

若操作tensor文件,需要将其从gpu上脱离并且存放在cpu上。

a = torch.tensor([1,2])
pickle.dump(a.detach().cpu(), file)

为方便后续操作,也可先将tensor转换成numpy格式再保存

a.numpy()

读数据

pickle 提取 提取的时候相对简单点, 同样我们以读的形式打开那个文件, 然后 load 进一个 python 的变量:

with open('pickle_example.pickle', 'rb') as file:
  a_dict1 =pickle.load(file)
print(a_dict1)

参考:

pickle 保存数据_cocoprince的博客-CSDN博客

pickle的官方文档

pickle — Python object serialization — Python 3.10.5 documentationhttps://docs.python.org/3/library/pickle.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值