在机器学习中,我们常常需要把训练好的模型存储起来,这样在进行预测时直接将模型读出,而不需要重新训练模型,这样就大大节约了时间。Python提供的pickle(腌制)模块就很好地解决了这个问题,它可以序列化对象并保存到磁盘中,并在需要的时候读取出来,任何对象都可以执行序列化操作。
Pickle模块中最常用的函数为:
(1)pickle.dump(obj, file)
函数的功能:将obj对象序列化存入到已经打开的file中。
(2)pickle.load(file)
函数的功能:将file中的对象序列化读出。
(3)pickle.dumps(obj[, protocol])
函数的功能:将obj对象序列化为string形式,而不是存入文件中。
(4)pickle.loads(string)
函数的功能:从string中读出序列化前的obj对象。
import pickle
my_list = ['安徽','山东','北京','上海']
fw = open('my_list.pkl','wb')#新建并打开一个文件,以二进制方式写入
pickle.dump(my_list,fw)#保存到文件中
pickle_file.close()#关闭文件
fr = open('my_list.pkl','rb')#打开文件
print(pickle.load(fr))#从文件中读出序列化的对象
p = pickle.dumps(my_list)#保存成string形式
print(pickle.loads(p))#从string中读出序列化的对象
>>['安徽', '山东', '北京', '上海']
['安徽', '山东', '北京', '上海']