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的官方文档